Vagrant 是一个用来构建完整开发环境的工具,凭借易用的工作流及对自动化的专注,Vagrant 降低了开发环境的设置时间,提高了生产效率。
Vagrant 宣称支持各种虚拟化平台,VirtualBox、VMware、AWS、OpenStack,甚至是 Docker 容器及原生的 LXC,但笔者认为其最常用的使用场景是结合 VirtualBox 来快速构建虚拟机,适用于开发环境而非部署大量的生产环境,本文仅介绍 Vagrant 最基本的使用方法。
2017-03-22 更新
如果使用的provider为VirtualBox并且有配置config.vm.synced_folder "data", "/data"
,会出现mount: unknown filesystem type ‘vboxsf’ 错误,安装vgrant-vbguest插件可以解决这个问题。
–end–
2017-05-11 更新
VirtualBox 的默认 Machine Folder 为 ~/VirtualBox\ VMs
,由于虚拟机会占用很多空间,人们希望将其存储在一个更大的可控的存储空间,使用如下命令进行更改:
[root@alice ~]# vboxmanage setproperty machinefolder /home/zhjwpku/vboxvms
–end–
Vagrant 和 Docker 的区别可阅读以下链接:
What is the difference between Docker and Vagrant? When should you use each one?
安装 VirtualBox
安装 Vagrant
去 Vagrant 官网下载界面下载 rpm 包并安装
测试
通过 Vagrant init
下载一个 box 的配置文件,像 dockerhub 一样,Vagrant 也有自己的镜像仓库。使用官方 Ubuntu 14.04 配置。
修改 Vagrantfile,使得配置文件如下:
启动:
检验 vbox1 是否安装了 git:
git 已经成功安装进 vbox1 这台 Ubuntu 14.04 的虚机。
如果对 Vagrantfile 进行了编辑,可以使用 vagrant reload 进行重新加载,reload 相当于 halt + up。
Reference:
1 Installing and using VirtualBox on CentOS
2 Mitchell Hashimoto. Vagrant: Up and Running. O’REILLY. 2013.