vagrant解决的问题
稍微有点团队协作开发经验的程序员都应该知道团队协作开发环境是多么的重要,起初的时候,大家的开发环境是windows,max os x,ubuntu,centos等等,我们各个程序员都是那么坚信程序在“我”的机器上是真的正常的。但是就线上就是出了问题,或者A程序员开发环境跑不起来,而且常常提交文件时,由于目录结构的差异,会导致误提交。由于开发环境的异构会导致我们浪费大量的时间去解决这些开发环境的问题。
所以vagrant可以解决上述的问题,可以实现开发环境的跨平台统一部署。它还可以做得:
1.编辑代码环境和运行、测试环境分离,代码在一个环境中编辑,运行在另外一个系统。
2.可以在程序多个版本自由切换,如线上、QA测试版本、当前正在开发
部署vagrant的简单步骤
1.安装VirtualBox(由于vagrant实质是调用虚拟机的接口来运行的,vagrant支持VirtualBox、Vmware等等)
下载:https://www.virtualbox.org/wiki/Downloads
选择自己常用的操作系统对应的版本,安装
2.安装vagrant
下载:http://downloads.vagrantup.com/
选择自己常用的操作系统对应的版本,安装
3.通过vagrant部署程序运行环境
这里其实就是vagrant支持的操作系统镜像,实质就是在虚拟环境运行一个操作系统,这里就是为什么要安装VirtualBox。
http://www.vagrantbox.es/在这里面我们可以找到,我们中意的操作系统镜像
另外,vagrant支持远程和本地镜像,如我们以CentOS-6.4为例
代码如下 | 复制代码 |
$vagrant box add Centos-6.4-dev https://github.com/2creatives/vagrant-centos/releases/download/v6.4.2/centos64-x86_64-20140116.box $mkdir -p /Volumes/MAC/vagrant/Centos-6.4 $cd /Volumes/MAC/vagrant/Centos-6.4 $vagrant init Centos-6.4-dev $vagrant up $vagrant ssh #登录到虚拟机(Centos-6.4-dev,默认用户名/密码都是vagrant) |
登录到虚拟机以后,我们就可以像操作其他远程服务器一样,进行环境部署了。另外宿主机/Volumes/MAC/vagrant/Centos-6.4将自动挂载到虚拟机的/vagrant目录。
可以方便我们做的东西,如:
1.制作标准的开发环境的box,打包。
在内网部署vagrant box repo,当有新同学时,只需要部署vagrant,然后通过简单几个指令就拥有了团队的标准的开发环境,迅速上手。
2.对已上线运行的代码,通过vagrant package指令制作box镜像且附加一些shell脚本(如导入线上数据库的子集或者整个库),可以迅速排查线上运行的问题。
3.QA测试的版本,也可以通过vagrant package指令制作box镜像,方便测试,免去搭建特殊运行环境。
4.支持一个Vagrantfile配置文件同时控制多个机器