参考文章:http://blog.smdcn.net/article/1308.htmlhtml
准备工做:web
下载安装 VirtualBox :https://www.virtualbox.org/shell
下载安装 Vagrant :http://www.vagrantup.com/网络
下载须要使用的 box :编辑器
官方提供的范例:http://files.vagrantup.com/precise32.box
spa
还能够在 http://www.vagrantbox.es/ 这里下载更多不一样系统甚至是已经配置好环境直接能够用的box,虽然能够直接在Vagrant直接使用网址,由Vagrant自动下载安装,可是考虑到网络状况,仍是建议自行先下载好。.net
设置环境:vagrant
第一步,新建目录code
mkdir -p vagrant/debian
cd vagrant/debian
第二步,初始化文件htm
vagrant box add debian-local /home/wangkongming/software/pmv3.box
debian-local 表示指定默认的box,也能够为box指定名称,好比 debian ,使用base时,以后能够直接使用 vagrant init 进行初始化,若是自行指定名称,则初始化的时候须要指定box的名称。
pmv3.box 是box对应的文件名,这里能够是本地保存box的路径,也能够是能够下载box的网址,若是是网址的话,Vagrant会自动启动下载。
第三步,
设置好box以后,在当前工做目录运行
vagrant init
生成对应的Vagrantfile。经过文本编辑器打开Vagrantfile能够进行一些进一步的经常使用配置:
网络配置:
Vagrant的网络有三种模式
一、较为经常使用是端口映射,就是将虚拟机中的端口映射到宿主机对应的端口直接使用 ,在Vagrantfile中配置:
config.vm.network :forwarded_port, guest: 80, host: 8080
guest: 80 表示虚拟机中的80端口, host: 8080 表示映射到宿主机的8080端口。
二、若是须要本身自由的访问虚拟机,可是别人不须要访问虚拟机,能够使用private_network,并为虚拟机设置IP ,在Vagrantfile中配置:
config.vm.network :private_network, ip: "192.168.1.104"
192.168.1.104 表示虚拟机的IP,多台虚拟机的话须要互相访问的话,设置在相同网段便可
三、若是须要将虚拟机做为当前局域网中的一台计算机,由局域网进行DHCP,那么在Vagrantfile中配置:
config.vm.network :public_network
目录映射:
既然是开发环境,那么开发工做确定仍是须要在本地完成,而不是都要进到虚拟机中去完成,虚拟机就好好在后台运行服务就行了,否则就本末倒置了,因此这里就须要使用目录映射功能,将本地的目录映射到虚拟机的对应目录。
默认状况下,当前的工做目录,会被映射到虚拟机的 /vagrant 目录,当前目录下的文件能够直接在 /vagrant 下进行访问,固然也能够在经过 ln 建立软链接,如
ln -fs /vagrant/wwwroot /var/www
来进行目录映射,固然,从自动化配置的角度,能不进系统就不须要进系统,因此在Vagrant也能够进行目录映射的操做:
config.vm.synced_folder "wwwroot/", "/var/www"
前面的参数 “wwwroot/” 表示的是本地的路径,这里使用对于工做目录的相对路径,这里也能够使用绝对路径,好比: “d:/www/”
后面的参数 “/var/www” 表示虚拟机中对应映射的目录。
在不进入虚拟机的状况下,还能够使用下面的命令对 虚拟机进行管理:
vagrant up (启动虚拟机)
vagrant halt (关闭虚拟机——对应就是关机)
vagrant suspend (暂停虚拟机——只是暂停,虚拟机内存等信息将以状态文件的方式保存在本地,能够执行恢复操做后继续使用)
vagrant resume (恢复虚拟机 —— 与前面的暂停相对应)
vagrant destroy (删除虚拟机,删除后在当前虚拟机所作进行的除开Vagrantfile中的配置都不会保留)
当在启动Vagrant后,对于虚拟机有进行过安装环境相关的配置,若是并不但愿写在Vagrant的启动shell里面每次都从新安装配置一遍,能够将当前配置好的虚拟机打包成box,
vagrant package --output NAME --vagrantfile FILE 可选参数: --output NAME : (可选)设置经过NAME来指定输出的文件名 --vagrantfile FILE:(可选)能够将Vagrantfile直接封进box中
注:若是网络模式中使用 private_network 的话,在打包以前须要清除一下private_network的设置,避免没必要要的错误:
sudo rm -f /etc/udev/rule.d/70-persistent-net.rules
制做完成以后直接将box文件拿到其余计算机上配置便可使用。
更多信息能够参考官方文档:http://docs.vagrantup.com/v2/
附:我本机上的vagrantfile文件
Vagrant.configure(2) do |config| config.vm.box = "debian-local" config.vm.network "forwarded_port", guest: 80, host: 8080 config.vm.network "private_network", ip: "192.168.1.88" config.vm.synced_folder "/home/wangkongming/files/works/code/kfz-pm", "/data/webroot/pmv2" end