Vagrant文档
前段时间学习"Foundations of Python Network Programming(3rd)",里面用到了vagrant就顺便学习了一下。发现网上有很多关于Vagrant的介绍文档,但是都不是很全。于是把Vagrant的文档翻译了,跟大家分享。具体的vagrant文档网址是www.vagrantup.com/docs,翻译不准确之处还请大家批评指正。
概述
Vagrant文档对Vagrant的官方定义是管理虚拟机生命周期的命令集。该文档描述了Vagrant从底层到顶层的所有特性,包含了所有的细节描述。如果是初学者官方文档建议从“初学者指南”开始学习。
为什么选用Vagrant
Vagrant提供了一种便捷、可配置、可再生的工作环境。该环境建立在标准的行业技术和一致的工作流程控制的基础上,这种环境的建立可以让你和你的团队的生产力和灵活性最大化。为了实现这个目的,Vagrant建立在巨人的肩膀上。Vagrant可以同Virtualbox,Vmware,AWS所有其他的虚拟机制一起协同工作,这样的话,类似于Shell,Puppet,chef等这些标准的配置工具,就可以在机器上自动的安装配置软件。
Vagrant的优点
如果你是个开发人员,Vagrant会把相关环境和依赖的一些程序合并到一个一致的环境中,避免了安装编译器,浏览器,编辑器等。一旦一个Vagrantfile创建了,只需要运行Vagrant up命令所有的配置都会自动安装好。团队里面的其他工作人员,只需要在同一个配置文件中就行。所以不论你工作在Linux,Max os ,windows。团队里面的所有人员都实际上运行在同一个环境上面。不管是配置还是依赖的其他安装包都是一致的。
如果你是个运维工程师,Vagrant会提供对开发和测试设备管理的一次性环境和一致的工作流程。你可以快速的测试Shell脚本、Chel,Puppet.用相同的配置还可以测试类似于AWS\RackSpace等云环境。扔掉回收EC2实例、杂乱SSH提示的各种自定义脚本。使用Vagrant会使你变得简单明了。
如果你是设计师,Vagrant可以自动的设置好所有的Web开发所需要的事情,你只需要专注于你最擅长的设计就可以了。一旦一个开发人员配置好了Vagrant,你再也不用担心他所开发的App不能在你的设备里面运行。也不用麻烦开发人员来帮你安装,你可以全心全力的集中在测试,只需要导出代码,运行Vagrnt up命令,开始设计就可以了。
Vagrant安装
安装Vagrant是一个非常简单的事情。只需要到Vagrant的下载地址www.vagrantup.com/downloads.html,根据自己的操作系统下载合适的安装包。按照正常的安装程序,安装就可以了。Vagrant的安装程序会自动的添加 vagrant目录到系统目录下面,这样在命令行模式下就可以运行了。不需要手动添加。
向后兼容
Vagrant1.1以上的版本提供了向agrant1.0版本兼容的功能。根本不需要安装插件或者别的什么。安装完Vagrant1.1.后,Vagrant1.0的运行环境不需要修改就可以继续运行。已经正在运行的机器还会自动的管理。Vagrant的兼容层将会一直持续到Vagrant2.0版本。可以以后的版本也会存在,但是Vagrant的兼容性只保持2个版本。但是用Vagrant1.0的人也不用担心。从目前来看,Vagrant过很长时间才能发布一个新的版本。如果你用Vagrant1.0的插件,在升级前,你必须先把这些插件删除掉。因为从Vagrang1.1开始将会禁止这些之前的不兼容插件。1.X版本的向后兼容不是很好,并且语法的稳定性也不是很好。直到2.0版这些才有改善。Vagrant 2.0最终有一个完整的Vagrantfile文件,使其保留了兼容性。
升级
如果是1.X版本的Vagrant升级很简单,只需要下载最新的安装包,然后安装覆盖掉之前的就可以了。安装程序会自动的移除旧文件,你只需要确认没有Vagrant 进程在运行就可以了。新Vagrantfile的语法直到2.0版本之前是不能保证稳定性的。所以Vagrant 1.0x版本指定的agrantfile还会继续工作,新的Vagrantfile直到2.0版本才有向后兼容性的改变。
用Vagrant源代码安装
用Vagrant源代码安装是一个高级话题,建议只有当用安装包安装不了的时候再用源代码安装。
安装Ryb
了编译和开发Vagrant,必须要有Ruby2.0或者以上版本。具体的Ruby版本记录在Vagrant的gemspec文件中,这里对于Ruby的安装不做详细的介绍,但是以下几个问题需要注意一下:
1)不要用系统自带的Ruby,可以用rvm或者chruby命令来查看Ruby的版本号
2)确保系统安装的是最新的Rubygems
3)确保系统安装的Bunder版本和Vagrant的版本一致,具体的版本可以从Vagrant.gemspec中查看
下载代码
Vagrant的代码都是放在GitHub上面,可以通过如下命令来获取:
$git clone https://github.com/mitchellh/vagrant.git
进入到下载代码的目录$ cd /path/to/your/vagrant/clone
按照相关要求运行
bundle
$bundle _1.10.6_ install
现在就可以用
bundle exec vagrant
命令来运行
vagrant
了。为了能在别的目录应用Vagrant,需要用bundle创建一个二进制文件,并且添加到系统目录中。
首先运行
$bundle --binstubs exec
这个命令会生成一个vagrant程序在exec文件夹下,这样在系统的任何地方你都可以应用vagrant程序例如
$ /path/to/vagrant/exec/vagrant init -m hashicorp/precise64
如果不想每次那么费劲的输入那么多路径,可以创建一个符号连接。
$ ln -sf /path/to/vagrant/exec/vagrant /usr/local/bin/vagrant
当需要转到正常的
Vagrant
的时候,只需要把这个连接删掉就行了。
删除
卸载Vagrant是一个非常简单的事情。可以直接卸载Vagrant的二进制文件和用户数据。卸载Vagrant的二进制文件,将会卸载所有与Vagrant相关的文件,卸载后,可以按照标准的方法重新装一遍。
Window
在Window下卸载可以直接在控制面板中卸载
Mac OS x
rm -rf /Applications/Vagrant
rm -f /usr/local/bin/vagrant
sudo pkgutil --forget com.vagrant.vagrant
Linux
rm -rf /opt/vagrant
rm -f /usr/bin/vagrant
删除用户数据将会删除所有的boxes,插件,版本信息和其他的Vagrant保存的信息。删除用户数据可以是Vagrant的安装变得简单。在所有的系统中都是删除~/.vagrant.d目录下的是用户信息。当编译的时候,建议把这个目录删掉,在删除之前,最好做一下备份。运行Vagrant会自动生成所有必要的数据,所以删除用户数据信息是安全的