团队合作的编码过程中,有时会因为个人开发环境的不同,而出现“代码在我的机器上运行没问题,在别人的机器上有问题”的情况。团队有新人加入时,需要为准备开发环境而浪费时间,并且准备的环境并不那么的统一,或者是版本不同,或者是参数配置不同。这些问题,vagrant都可以解决。Vagrant是一款用来构建虚拟开发环境的工具,可用于统一团队开发环境,避免环境不一致导致的莫名错误,非常适合团队合作开发。Vagrant使用Ruby开发,基于VirtualBox等虚拟机管理软件的接口,提供了一个可配置、轻量级的便携式虚拟开发环境,同时,它还可以用于模拟分布式环境。
vagrant底层支持VirtualBox、VMware甚至AWS作为虚拟机系统,所以在安装vagrant之前,需要先安装虚拟机,推荐使用VirtualBox,它小巧便捷,关键是免费。安装过程很简单,一步一步根据引导安装即可。下载地址:https://www.virtualbox.org/wiki/Downloads/。
vagrant的安装也很简单,根据引导一步一步安装即可完成,下载地址:http://www.vagrantup.com/downloads.html。安装完成后,打开终端命令行,输入vagrant校验是否安装成功,若安装成功,有如下图输出。
若未正常输出,检查Path是否正确设置了vagrant所在的路径。
先解释一下box,在vagrant中,box就是一个包含可运行的操作系统及软件的镜像包。box支持在线添加和本地添加两种方式。本地添加需要将box下载到本地后再添加,这种方式可以加快box的添加,推荐这种方式。vagrant社区中提供了很多可供使用的box,可以到https://atlas.hashicorp.com/boxes/search查询及下载所需要的box,http://www.vagrantbox.es/中提供了可在线添加的box,当然也可以自己制作box。
在添加box之前,推荐将当前路径切换到一个独立的路径,该路径可以是原有的,也可以是新建的,只要是单独给vagrant使用即可,如将box下载到vagrant目录下。
使用如下命令添加:
vagrant box add {title} {url}
vagrant box add是添加box的命令,title是给添加的box起的名,如果是本地添加,url是本地包的路径,如果是在线添加,url是网络上box的url,示例如下,
在线添加:
vagrant box add centoshttp://tag1consulting.com/files/centos-5.9-x86-64-minimal.box,
本地添加:
vagrant box add ubuntu ubuntu.box //需要确保ubuntu.box在当前路径下
初始化命令如下:
vagrant init {boxName}
boxName是添加box时起的名称,例如vagrant init ubuntu。初始化完成后,会在当前路径下生成一个Vagrantfile文件,用于配置vagrant的参数,使用默认的即可,如果有特殊需求可以google。
启动命令如下:
vagrant up
若启动输出结果没有报错信息,则表示启动成功。
vagrant启动成功后,可以使用ssh来连接虚拟机,命令如下:
vagrant ssh
连接成功后,就可以使用命令方式操作这个系统了,安装数据库等。
在虚拟机中配置好环境后,退出并关闭虚拟机,使用如下命令进行打包:
vagrant package
命令成功执行后会在当前路径下生成package.box文件,可以将这个文件共享给团队中的开发人员,只要添加这个box并初始化,就可以保证团队开发环境的一致。