Vagrant 是一款用来构建虚拟开发环境的工具,非常适合 php/python/ruby/java 这类语言开发 web 应用,“代码在我机子上运行没有问题”这种说辞将成为历史。
我们可以通过 Vagrant 封装一个 Linux 的开发环境,分发给团队成员。成员可以在自己喜欢的桌面系统(Mac/Windows/Linux)上开发程序,代码却能统一在封装好的环境里运行,非常霸气。
安装步骤
- 安装 VirtualBox
虚拟机还是得依靠 VirtualBox 来搭建,免费小巧。下载地址:https://www.virtualbox.org/wiki/Downloads
** 虽然 Vagrant 也支持 VMware,不过 VMware 是收费的,对应的 Vagrant 版本也是收费的*
PS:目前VirtualBox官方提供的是5.0以上的版本,但在正式使用的过程中,发现其存在不少的问题,建议是使用5.0以下的版本进行安装,本人使用的是4.3的。 - 安装 Vagrant
下载地址:http://downloads.vagrantup.com/ 根据提示一步步安装。
PS:官方提供的是1.8的最新下载,建议使用1.7的……还是跟Virtualbox一个解释缘由。
此外,还得下载官方封装好的基础镜像:
Ubuntu precise 32 VirtualBox http://files.vagrantup.com/precise32.box
Ubuntu precise 64 VirtualBox http://files.vagrantup.com/precise64.box
如果你要其他系统的镜像,可以来这里下载:http://www.vagrantbox.es/
** 鉴于国内网速,我们将下载镜像的步骤单独剥离出来了* - 添加镜像到 Vagrant
假设我们下载的镜像存放路径是 ~/box/precise64.box,在终端里输入:
$ vagrant box add hahaha ~/box/precise64.box
hahaha是我们给这个 box 命的名字,~/box/precise64.box,是 box 所在路径。
为了方便操作windows的cmd功能,在此提供一个好用的cmd软件:cmder。
PS:基于为了部署多种的开发环境,本人也不建议说在一个虚拟机上面进行多种环境的安装配置,所以提供一个windows下多虚拟机协同搭设的方法:
$ mkdir ubuntu
$ cd ubuntu
$ vagrant box add ubuntu ../box/precise64.box
$ vagrant init ubuntu
在vagrant init执行完成后,在文件夹内会生成一份Vagrantfile,需要注意的是文件内
config.vm.box = "ubuntu"
是否与你初始化的vagrant init的名称一致。
同时把
#config.vm.network "private_network", ip: "192.168.33.10"
前面的#号去掉,方便ssh操作该ip地址上的虚拟机。
到此配置文件基本OK,接下来运行
$ vagrant up
此时会看到虚拟机已经启动。若没有去掉ip的那段注释,可用以下的方法连接到虚拟机上:
$ vagrant ssh # SSH 登录
$ cd /vagrant # 切换到开发目录,也就是宿主机上的 `~/dev`
已经进行过ip注释的,可以用ssh的方式远程连接:
$ ssh vagrant@192.168.33.10
密码是vagrant。再次建议使用cmder,内置ssh方便你在windows进行远程连接的使用。
- 常用命令
$ vagrant init # 初始化
$ vagrant up # 启动虚拟机
$ vagrant halt # 关闭虚拟机
$ vagrant reload # 重启虚拟机
$ vagrant ssh # SSH 至虚拟机
$ vagrant status # 查看虚拟机运行状态
$ vagrant destroy # 销毁当前虚拟机
更多内容请查阅官方文档 http://docs.vagrantup.com/v2/cli/index.html