Vagrant 是一款用來建構虛拟開發環境的工具,非常适合 php/python/ruby/java 這類語言開發 web 應用,“代碼在我機子上運作沒有問題”這種說辭将成為曆史。
我們可以通過 Vagrant 封裝一個 Linux 的開發環境,分發給團隊成員。成員可以在自己喜歡的桌面系統(Mac/Windows/Linux)上開發程式,代碼卻能統一在封裝好的環境裡運作,非常霸氣。
虛拟機還是得依靠 VirtualBox 來搭建,免費小巧。
下載下傳位址:https://www.virtualbox.org/wiki/Downloads
* 雖然 Vagrant 也支援 VMware,不過 VMware 是收費的,對應的 Vagrant 版本也是收費的
下載下傳位址:http://downloads.vagrantup.com/ 根據提示一步步安裝。
此外,還得下載下傳官方封裝好的基礎鏡像:
Ubuntu precise 32 VirtualBox http://files.vagrantup.com/precise32.box
Ubuntu precise 64 VirtualBox http://files.vagrantup.com/precise64.box
如果你要其他系統的鏡像,可以來這裡下載下傳:http://www.vagrantbox.es/
* 鑒于國内網速,我們将下載下傳鏡像的步驟單獨剝離出來了
假設我們下載下傳的鏡像存放路徑是 <code>~/box/precise64.box</code>,在終端裡輸入:
<code>hahaha</code> 是我們給這個 box 命的名字,<code>~/box/precise64.box</code> 是 box 所在路徑
建立一個開發目錄(比如:<code>~/dev</code>),你也可以使用已有的目錄,切換到開發目錄裡,用 <code>hahaha</code> 鏡像初始化目前目錄的環境:
你會看到終端顯示了啟動過程,啟動完成後,我們就可以用 SSH 登入虛拟機了,剩下的步驟就是在虛拟機裡配置你要運作的各種環境和參數了。
<code>~/dev</code> 目錄對應虛拟機中的目錄是 <code>/vagrant</code>
Windows 使用者注意:Windows 終端并不支援 ssh,是以需要安裝第三方 SSH 用戶端,比如:Putty、Cygwin 等。
Vagrant 初始化成功後,會在初始化的目錄裡生成一個 <code>Vagrantfile</code> 的配置檔案,可以修改配置檔案進行個性化的定制。
Vagrant 預設是使用端口映射方式将虛拟機的端口映射本地進而實作類似 <code>http://localhost:80</code> 這種通路方式,這種方式比較麻煩,新開和修改端口的時候都得編輯相比較而言,host-only 模式顯得友善多了。打開 <code>Vagrantfile</code>,将下面這行的注釋去掉(移除 <code>#</code>)并儲存:
重新開機虛拟機,這樣我們就能用 <code>192.168.33.10</code> 通路這台機器了,你可以把 IP 改成其他位址,隻要不産生沖突就行。
當你配置好開發環境後,退出并關閉虛拟機。在終端裡對開發環境進行打包:
打包完成後會在目前目錄生成一個 <code>package.box</code> 的檔案,将這個檔案傳給其他使用者,其他使用者隻要添加這個 box 并用其初始化自己的開發目錄就能得到一個一模一樣的開發環境了。
更多内容請查閱官方文檔 http://docs.vagrantup.com/v2/cli/index.html
SegmentFault 團隊就是用這種方式統一開發環境的
本篇文章所用程式版本 VirtualBox 4.2.16,Vagrant 1.2.7
延伸閱讀:
《Go 語言開發環境配置》 by @Asta謝
轉載至http://segmentfault.com/a/1190000000264347