什么是 Vagrant
Vagrant 是一個(gè)簡單易用的部署工具蛔糯,用英文說應(yīng)該是 **Orchestration Tool** 膳灶。它能幫助開發(fā)人員迅速的構(gòu)建一個(gè)
開發(fā)環(huán)境穗酥,幫助測試人員構(gòu)建測試環(huán)境, Vagrant 基于 Ruby 開發(fā),使用開源 [ VirtualBox]
(https://www.virtualbox.org/) 作為虛擬化支持曾沈,可以輕松的跨平臺(tái)部署。
通俗的來說, 就是在本地部署一個(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)入工作文件夾中
2.把下載的 box 鏡像包放到工作目錄下-這里我以Ubuntu.14.04
為例
3.打開終端進(jìn)入工作目錄, 或者你可以在當(dāng)前目錄按住shift+鼠標(biāo)右鍵
可快速打開當(dāng)前目錄的終端
4.我們執(zhí)行vagrant box list可查看當(dāng)前添加進(jìn) vagrant 的鏡像
5.如果沒有添加 box 鏡像, 我們執(zhí)行vagrant box add 系統(tǒng)名字 box鏡像
6.這時(shí)候我們執(zhí)行vagrant box list就可以查看我們添加的 box 鏡像
7.** box 鏡像添加到 vagrant 里面后我們就可以執(zhí)行vagrant init 系統(tǒng)名初始化, 初始成功后我們可以看見當(dāng)前工作目錄下會(huì)生成一個(gè)Vagrantfile的配置文件**
8.**因?yàn)槲覀兲摂M機(jī)默認(rèn)只分配一個(gè)訪問外網(wǎng)的 IP, 項(xiàng)目使用的 IP 得手動(dòng)設(shè)置打開Vagrantfile
找到29行(我的配置文件在29行)設(shè)置一個(gè)私有 IP **
9.到這里所有配置工作都完成了, 我們可以vagrant up正式啟動(dòng)了, 啟動(dòng)成功后會(huì)在當(dāng)前目錄生成一個(gè).vagrant
的隱藏文件夾
10.在工作目錄中, 使用了vagrant up命令, 我們虛擬機(jī)會(huì)自動(dòng)的幫我們配置一個(gè)系統(tǒng), 然后自動(dòng)后臺(tái)啟動(dòng), 以后都無須管理虛擬機(jī)讓虛擬機(jī)在后臺(tái)玩兒去吧
11.我們可以在當(dāng)前目錄使用vagrant ssh直接連接到虛擬機(jī)里面, 也可以使用第三方工具進(jìn)行連接如Putty,Xshell, IP 為我們剛剛在Vagrantfile配置文件中設(shè)置的私有 IP
特別注意: 如果是第三方工具連接, 用戶名和密碼都是vagrant
12.虛擬機(jī)里面的/vagrant
這個(gè)文件夾是和我們本地同步的文件夾
13.下面我們就來看看vagrant神奇的地方, 我們在/vagrant同步文件夾里面創(chuàng)建一個(gè)文件a, 看看我們本地發(fā)生了什么....., 同樣我們在本地把這個(gè)a文件刪除, 看看虛擬機(jī)里面發(fā)生了什么...
14.這樣我們以后從服務(wù)器拉取下來的項(xiàng)目, 就可以直接在同步文件夾操作, 操作本地文件, 就相當(dāng)于操作虛擬機(jī), 目前已經(jīng)有很多大型公司使用vagrant, 因?yàn)檫@可以提升他們的開發(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)境
參考
原文來源