參考文章: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