Vagrant是一款用于构建及配置虚拟开发环境的软件,基于Ruby,主要以命令行的方式运行。
主要使用Oracle的开源VirtualBox虚拟化系统,与Chef,Salt,Puppet等环境配置管理软件搭配使用,可以实行快速虚拟开发环境的构建。
早期以VirtualBox为对象,1.1以后的版本中开始对应VMware等虚拟化软件,包括Amazon EC2之类服务器环境的对应。
2010年1月,Vagrant 只是作为Mitchell Hashimoto的业余兴趣而启动的项目。同年3月,Vagrant的第一版本发布了。同年10月,Engine Yard宣布它们将赞助该项目。在原始版本的整整两年后——2012年3月, Vagrant 1.0(首个稳定版本)发布了。同年12月份,Mitchell成立了名为HashiCorp并全职开发Vagrant,但Vagrant仍保留自由软件。HashiCorp现今为Vagrant提供商业插件,并提供专业支持和训练。
初始Vagrant与VirtualBox绑定,但在版本1.1时开始支持其他虚拟化软件,如:VMware、基于内核的虚拟机(KVM)以及作为虚拟专用服务器(如:Amazon EC2)。Vagrant是用Ruby开发的。自版本1.6之后,Vagrant开始支持Docker容器,在一些例子,docker容器可以代替完整的虚拟系统。
Vagrant使用"Provisioners"和"Providers" 作为开发环境的构建模块。
|--vagrant|--Providers 如:VirtualBox、Hyper-V、Docker、VMware、AWS|--Boxex 如:Centos7。与镜像类似|--Provisioners 如:'yum intall -y python' 等自定义自动化脚本