wxtyixiao 2014-07-07
一、使用虚拟化开发环境的好处:
虚拟化开发环境其实就是在本机虚拟一个生产环境,得益于硬件的低廉,开发机已经变得性能非常强劲,4核、32G内存的计算机也不需要太多的费用,跑虚拟机相当顺畅。
使用虚拟化开发环境,开发人员在本机可以使用自己喜欢或者顺手的OS(Windows、Linux、Mac OS等),而程序是运行在虚拟机中,迁移到生产环境可以避免环境不兼容导致的莫名错误。
虚拟化开发环境对于团队中开发环境OS、测试和生产环境不同的情况特别适用。
稍微复杂的系统,部署调试环境就会是个麻烦的事情,nginx、mysql、redis、mongodb等估计都要安装,可能还有一大堆第三方的开发库......,通过虚拟化技术可以简化这些工作。
虚拟环境可以由专人制作,然后分发给开发人员、测试人员,他们可以很方便的在本机调试。
如果生产环境还是多平台(或多个OS版本)的,可以制作多个虚拟机,简单切换一下就可以调试了。
VirtualBox是Oracle开源的虚拟化系统,到官方网站:https://www.virtualbox.org/wiki/Downloads/ 下载virtualbox最新的版本并安装,详细过程略过。
vagrant是一个用Ruby开发的工具,封装了VirtualBox的一些命令,它简化了virtualbox虚拟机的操作,增加了自动化部署软件puppet/chef的支持
通过vagrant可以很方便的创建和部署、分发虚拟化开发环境。
方法一、下载安装包,官方网站:http://downloads.vagrantup.com/
注意,尽量下载最新的程序,因为VirtualBox经常升级,升级后有些接口会变化,老的vagrant可能无法使用
方法二、vagrant是ruby开发的,如果已经安装了ruby,可以用gem安装:
gem install vagrant
在资源管理器中建一个文件夹
本文是E:\workspace\devel_env
进入E:\workspace\devel_env目录中
按住shift键,在空白处按鼠标右键,在弹出菜单中点“打开命令行窗口”
box是一个zip包,包含了vagrant的配置信息和VirtualBox的虚拟机镜像文件
官方提供了一个box,http://files.vagrantup.com/lucid32.box
也可以选一个团队在用的系统,http://www.vagrantbox.es/
或者自己做一个也行
我服务器都CentOS,选了CentOS 6.3 x86_64 minimal
vagrant box add base 远端的box url或者本地的box文件名 vagrant box add 是添加命令 base 是box的名称,也可以任意的标题,base是默认名称
例子:
vagrant box add base http://files.vagrantup.com/lucid32.box vagrant box add base https://dl.dropbox.com/u/7225008/Vagrant/CentOS-6.3-x86_64-minimal.box vagrant box add base e:/vbox/CentOS-6.3-x86_64-minimal.box vagrant box add "CentOS 6.3 x86_64 minimal" e:/vbox/CentOS-6.3-x86_64-minimal.box
安装过程的信息
[vagrant] Downloading with Vagrant::Downloaders::File... [vagrant] Copying box to temporary location... [vagrant] Extracting box... [vagrant] Verifying box... [vagrant] Cleaning up downloaded box...
文件被放到C:\Users\当前用户名.vagrant.d\boxes\目录下
通过vagrant box add 这样的方式安装远程的box,可能很慢,可以先用下载工具把box下到本地
vagrant init
如果你添加的box名称不是base,要在初始化的时候指定,例如
vagrant init "CentOS 6.3 x86_64 minimal"
初始化过程的信息
A `Vagrantfile` has been placed in this directory. You are now ready to `vagrant up` your first virtual environment! Please read the comments in the Vagrantfile as well as documentation on `vagrantup.com` for more information on using Vagrant. 5)修改Vagrantfile,加一些项目需要的路径和端口映射 config.vm.forward_port 虚拟机内端口, 本机端口 config.vm.forward_port 80, 80 config.vm.forward_port 5000, 5000 config.vm.share_folder "标识", "虚拟机内路径", "本机路径" config.vm.share_folder "v-data", "/data", "e:/workspace/data" config.vm.share_folder "v-work", "/work", "e:/workspace/work"
我的生产环境有/data、/work两个目录,所以做了映射