什么是 Vargrant 纵菌?
Vagrant 是一個(gè)簡(jiǎn)單易用的部署工具咱圆,用英文說(shuō)應(yīng)該是 Orchestration Tool 功氨。它能幫助開(kāi)發(fā)人員迅速的構(gòu)建一個(gè)開(kāi)發(fā)環(huán)境,幫助測(cè)試人員構(gòu)建測(cè)試環(huán)境, Vagrant 基于 Ruby 開(kāi)發(fā)忱详,使用開(kāi)源 VirtualBox 作為虛擬化支持跺涤,可以輕松的跨平臺(tái)部署监透。
通俗的來(lái)說(shuō)胀蛮,就是在本地部署一個(gè)和Linux 虛擬機(jī)上的同步文件夾,這樣所有的操作都方便了許多
準(zhǔn)備工作
- 下載 VirtualBox 虛擬器 : https://www.virtualbox.org/
- 下載安裝 Vagrant : http://www.vagrantup.com/
- 下載使用的 box (這里的 box 指的是系統(tǒng)) : http://www.vagrantbox.es/
- 在本地建立一個(gè)工作文件夾
部署環(huán)境
1.進(jìn)入工作文件夾
![](https://dn-phphub.qbox.me/uploads/images/201608/11/4430/qi010UncMt.png)
2.把下載的Box 鏡像包放到工作目錄下-這里我以 **ubuntu 14.04 **為例
![](https://dn-phphub.qbox.me/uploads/images/201608/11/4430/j14Lh8LDgK.png)
3.打開(kāi)終端進(jìn)入工作目錄, 或者你可以在當(dāng)前目錄按住 shift+鼠標(biāo)右鍵 可快速打開(kāi)當(dāng)前目錄的終端
![](https://dn-phphub.qbox.me/uploads/images/201608/11/4430/FRVTwWoc4P.png)
4.我們執(zhí)行 vagrant box list 可查看當(dāng)前添加進(jìn) vagrant 的鏡像
5.如果沒(méi)有添加 box 鏡像, 我們執(zhí)行 vagrant box add 系統(tǒng)名字 box鏡像
![](https://dn-phphub.qbox.me/uploads/images/201608/11/4430/3hQEn4BqQV.png)
6.這時(shí)候我們執(zhí)行 vagrant box list 就可以查看我們添加的 box 鏡像
![](https://dn-phphub.qbox.me/uploads/images/201608/11/4430/WhLy9V3xik.png)
7.box 鏡像添加到 vagrant 里面后我們就可以執(zhí)行 vagrant init 系統(tǒng)名 初始化, 初始成功后我們可以看見(jiàn)當(dāng)前工作目錄下會(huì)生成一個(gè) Vagrantfile 的配置文件
![](https://dn-phphub.qbox.me/uploads/images/201608/11/4430/2UtfqriRoR.png)
8.因?yàn)槲覀兲摂M機(jī)默認(rèn)只分配一個(gè)訪問(wèn)外網(wǎng)的 IP, 項(xiàng)目使用的 IP 得手動(dòng)設(shè)置打開(kāi) Vagrantfile 找到29行(我的配置文件在29行)設(shè)置一個(gè)私有 IP
![](https://dn-phphub.qbox.me/uploads/images/201608/11/4430/BEgwMVAG4n.png)
9.到這里所有配置工作都完成了, 我們可以 vagrant up 正式啟動(dòng)了, 啟動(dòng)成功后會(huì)在當(dāng)前目錄生成一個(gè) .vagrant 的隱藏文件夾
![](https://dn-phphub.qbox.me/uploads/images/201608/11/4430/3rs87g3cVZ.png)
10.在工作目錄中, 使用了 vagrant up 命令, 我們虛擬機(jī)會(huì)自動(dòng)的幫我們配置一個(gè)系統(tǒng), 然后自動(dòng)后臺(tái)啟動(dòng), 以后都無(wú)須管理虛擬機(jī) 讓虛擬機(jī)在后臺(tái)玩兒去吧
![](https://dn-phphub.qbox.me/uploads/images/201608/11/4430/yNXl032dCw.png)
11.我們可以在當(dāng)前目錄使用 vagrant ssh 直接連接到虛擬機(jī)里面, 也可以使用第三方工具進(jìn)行連接如 Putty, Xshell, IP 為我們剛剛在 Vagrantfile 配置文件中設(shè)置的私有 IP
![](https://dn-phphub.qbox.me/uploads/images/201608/11/4430/AA5qv9pGyc.png)
特別注意: 如果是第三方工具連接, 用戶名和密碼都是 vagrant
12.虛擬機(jī)里面的 /vagrant 這個(gè)文件夾是和我們本地同步的文件夾
![](https://dn-phphub.qbox.me/uploads/images/201608/11/4430/twIE9fRXrY.png)
13.下面我們就來(lái)看看vagrant神奇的地方, 我們?cè)?/vagrant 同步文件夾里面創(chuàng)建一個(gè)文件 a, 看看我們本地發(fā)生了什么....., 同樣我們?cè)诒镜匕堰@個(gè) a 文件刪除, 看看虛擬機(jī)里面發(fā)生了什么...
![](https://dn-phphub.qbox.me/uploads/images/201608/11/4430/OBmfGKxVN1.png)
14.這樣我們以后從服務(wù)器拉取下來(lái)的項(xiàng)目, 就可以直接在同步文件夾操作, 操作本地文件, 就相當(dāng)于操作虛擬機(jī), 目前已經(jīng)有很多大型公司使用 vagrant, 因?yàn)檫@可以提升他們的開(kāi)發(fā)效率
最后附上vagrant一些常用的命令, 希望這能幫助你們, 別忘記點(diǎn)贊喲!
- $ vagrant box add NAME URL #添加一個(gè)box
- $ vagrant box list #查看本地已添加的box
- $ vagrant box remove NAME virtualbox #刪除本地已添加的box鸳玩,如若是版本1.0.x不跟,執(zhí)行$ vagrant box remove NAME
- $ vagrant init NAME #初始化米碰,實(shí)質(zhì)應(yīng)是創(chuàng)建Vagrantfile文件
- $ vagrant up #啟動(dòng)虛擬機(jī)
- $ vagrant halt #關(guān)閉虛擬機(jī)
- $ vagrant destroy #銷毀虛擬機(jī)
- $ vagrant reload #重啟虛擬機(jī)
- $ vagrant package #當(dāng)前正在運(yùn)行的VirtualBox虛擬環(huán)境打包成一個(gè)可重復(fù)使用的box
- $ vagrant ssh #進(jìn)入虛擬環(huán)境