引言
團(tuán)隊(duì)合作的編碼過(guò)程中,有時(shí)會(huì)因?yàn)閭€(gè)人開(kāi)發(fā)環(huán)境的不同,而出現(xiàn)“代碼在我的機(jī)器上運(yùn)行沒(méi)問(wèn)題,在別人的機(jī)器上有問(wèn)題”的情況。團(tuán)隊(duì)有新人加入時(shí),需要為準(zhǔn)備開(kāi)發(fā)環(huán)境而浪費(fèi)時(shí)間,并且準(zhǔn)備的環(huán)境并不那么的統(tǒng)一,或者是版本不同,或者是參數(shù)配置不同。這些問(wèn)題,vagrant都可以解決。Vagrant是一款用來(lái)構(gòu)建虛擬開(kāi)發(fā)環(huán)境的工具,可用于統(tǒng)一團(tuán)隊(duì)開(kāi)發(fā)環(huán)境,避免環(huán)境不一致導(dǎo)致的莫名錯(cuò)誤,非常適合團(tuán)隊(duì)合作開(kāi)發(fā)。Vagrant使用Ruby開(kāi)發(fā),基于VirtualBox等虛擬機(jī)管理軟件的接口,提供了一個(gè)可配置、輕量級(jí)的便攜式虛擬開(kāi)發(fā)環(huán)境,同時(shí),它還可以用于模擬分布式環(huán)境。
安裝VirtualBox
vagrant底層支持VirtualBox、VMware甚至AWS作為虛擬機(jī)系統(tǒng),所以在安裝vagrant之前,需要先安裝虛擬機(jī),推薦使用VirtualBox,它小巧便捷,關(guān)鍵是免費(fèi)。安裝過(guò)程很簡(jiǎn)單,一步一步根據(jù)引導(dǎo)安裝即可,下載鏈接。
安裝vagrant
vagrant的安裝也很簡(jiǎn)單,根據(jù)引導(dǎo)一步一步安裝即可完成,下載鏈接。安裝完成后,打開(kāi)終端命令行,輸入vagrant校驗(yàn)是否安裝成功,若安裝成功,有如下圖輸出。

若未正常輸出,檢查Path是否正確設(shè)置了vagrant所在的路徑。
添加box
先解釋一下box,在vagrant中,box就是一個(gè)包含可運(yùn)行的操作系統(tǒng)及軟件的鏡像包。box支持在線添加和本地添加兩種方式。本地添加需要將box下載到本地后再添加,這種方式可以加快box的添加,推薦這種方式。vagrant社區(qū)中提供了很多可供使用的box,可以到https://atlas.hashicorp.com/boxes/search查詢(xún)及下載所需要的box,http://www.vagrantbox.es/中提供了可在線添加的box,當(dāng)然也可以自己制作box。
在添加box之前,推薦將當(dāng)前路徑切換到一個(gè)獨(dú)立的路徑,該路徑可以是原有的,也可以是新建的,只要是單獨(dú)給vagrant使用即可,如將box下載到vagrant目錄下。
使用如下命令添加:
vagrant box add {title} {url}
vagrant box add是添加box的命令,title是給添加的box起的名,如果是本地添加,url是本地包的路徑,如果是在線添加,url是網(wǎng)絡(luò)上box的url,示例如下,
在線添加:
vagrant box add centos http://tag1consulting.com/files/centos-5.9-x86-64-minimal.box,
本地添加:
vagrant box add ubuntu ubuntu.box //需要確保ubuntu.box在當(dāng)前路徑下
vagrant初始化
初始化命令如下:
vagrant init {boxName}
boxName是添加box時(shí)起的名稱(chēng),例如vagrant init ubuntu。初始化完成后,會(huì)在當(dāng)前路徑下生成一個(gè)Vagrantfile文件,用于配置vagrant的參數(shù),使用默認(rèn)的即可,如果有特殊需求可以google。
vagrant啟動(dòng)
啟動(dòng)命令如下:
vagrant up
若啟動(dòng)輸出結(jié)果沒(méi)有報(bào)錯(cuò)信息,則表示啟動(dòng)成功。
連接虛擬機(jī)
vagrant啟動(dòng)成功后,可以使用ssh來(lái)連接虛擬機(jī),命令如下:
vagrant ssh
連接成功后,就可以使用命令方式操作這個(gè)系統(tǒng)了,安裝數(shù)據(jù)庫(kù)等。
打包box
在虛擬機(jī)中配置好環(huán)境后,退出并關(guān)閉虛擬機(jī),使用如下命令進(jìn)行打包:
vagrant package
命令成功執(zhí)行后會(huì)在當(dāng)前路徑下生成package.box文件,可以將這個(gè)文件共享給團(tuán)隊(duì)中的開(kāi)發(fā)人員,只要添加這個(gè)box并初始化,就可以保證團(tuán)隊(duì)開(kāi)發(fā)環(huán)境的一致。