最近要開始深入學(xué)習(xí)分布式相關(guān)的東西了,那第一步就是在自己的電腦上安裝虛擬機(jī),以前在Windows平臺(tái),我選擇用VMware Workstation作為虛擬機(jī)軟件,現(xiàn)在在Mac系統(tǒng)下,感覺不是很適合了,然后就有朋友推薦我使用Vagrant來(lái)在Mac系統(tǒng)作為虛擬機(jī)管理軟件,那么本文我們就來(lái)聊一聊跟這貨相關(guān)的蠻有意思的東西。 Vagrant是一個(gè)基于Ruby的工具,用于創(chuàng)建和部署虛擬化開發(fā)環(huán)境。它 使用Oracle的開源VirtualBox虛擬化系統(tǒng),使用 Chef創(chuàng)建自動(dòng)化虛擬環(huán)境。我們可以使用它來(lái)干如下這些事: 建立和刪除虛擬機(jī) 配置虛擬機(jī)運(yùn)行參數(shù) 管理虛擬機(jī)運(yùn)行狀態(tài) 自動(dòng)配置和安裝開發(fā)環(huán)境 打包和分發(fā)虛擬機(jī)運(yùn)行環(huán)境 Vagrant的運(yùn)行,需要依賴某項(xiàng)具體的虛擬化技術(shù),最常見的有VirtualBox以及VMWare兩款,早期,Vagrant只支持VirtualBox,后來(lái)才加入了VMWare的支持。 為什么我們要選擇Vagrant呢?因?yàn)樗?span>跨平臺(tái)、可移動(dòng)、自動(dòng)化部署無(wú)需人工參與等優(yōu)點(diǎn)。 在Vagrant體系中,有個(gè)box(箱子)的概念,這優(yōu)點(diǎn)類似于docker體系中的image(鏡像)?;谕粋€(gè)box,不同的人可以運(yùn)行得到相同的內(nèi)容。這個(gè)我們下文再詳細(xì)說(shuō)。 因?yàn)槲覀冎纕agrant依賴virtualbox,所以我們需要在安裝vagrant之前先安裝virtualbox,筆者初學(xué)時(shí)在網(wǎng)上搜索了很久,發(fā)現(xiàn)大部分人的vagrant教程里只說(shuō)讓安裝vagrant并沒(méi)有說(shuō)要提前安裝virtualbox,結(jié)果我按照他們的步驟安裝完vagrant以后,發(fā)現(xiàn)死活起不來(lái),當(dāng)時(shí)真的是郁悶。后來(lái)又查了好久才知道這貨依賴虛擬化軟件,所以我又安裝了virtualbox,這樣我本地才把vagrant起來(lái)了。真的是坑!這個(gè)大家要注意。 下載地址:https://www./wiki/Downloads 安裝過(guò)程很簡(jiǎn)單,傻瓜式的一步一步點(diǎn)下去。 下載地址:https://www./downloads.html 安裝過(guò)程依舊沒(méi)什么難的,跟著提示一步一步next安裝。 注意:下載的時(shí)候,virtualbox和vagrant的版本要搭配,建議都下載最新版的。還有就是要根據(jù)自己的操作系統(tǒng)版本進(jìn)行選擇32位或者64位下載。在windows系統(tǒng)中,可能還需要配置環(huán)境變量以及一定要開啟VT-x/AMD-V硬件加速。 列出本地環(huán)境中所有的box 添加box到本地vagrant環(huán)境 更新本地環(huán)境中指定的box 刪除本地環(huán)境中指定的box 重新打包本地環(huán)境中指定的box 在線查找需要的box 官方網(wǎng)址:https://app./boxes/search 在空文件夾初始化虛擬機(jī) 在初始化完的文件夾內(nèi)啟動(dòng)虛擬機(jī) ssh登錄啟動(dòng)的虛擬機(jī) 掛起啟動(dòng)的虛擬機(jī) 重啟虛擬機(jī) 關(guān)閉虛擬機(jī) 查找虛擬機(jī)的運(yùn)行狀態(tài) 銷毀當(dāng)前虛擬機(jī) 關(guān)于端口轉(zhuǎn)發(fā)的配置方式有以下兩種: 掛起虛擬機(jī)后,在virtualbox的設(shè)置里配置轉(zhuǎn)發(fā)規(guī)則(缺點(diǎn)是:每次通過(guò)vagrant reload命令重啟虛擬機(jī)以后失效) 首先打開VirtualBox管理器: 然后設(shè)置轉(zhuǎn)發(fā)規(guī)則: 添加對(duì)應(yīng)的轉(zhuǎn)發(fā)規(guī)則,然后點(diǎn)擊OK保存,再使用命令 注意:一定不能使用vagrant reload命令,否則啟動(dòng)后規(guī)則丟失無(wú)效。 在vagrant的配置文件Vagrantfile里配置轉(zhuǎn)發(fā)規(guī)則(永久有效,重啟不會(huì)丟失) 在配置文件里增加以下配置: 這樣的話我們就獲得了永久的8889到80、9999到8888的轉(zhuǎn)發(fā)。 vagrant支持以下三種網(wǎng)絡(luò)配置: 是指將宿主計(jì)算機(jī)的端口映射到虛擬機(jī)上的某個(gè)端口上,訪問(wèn)宿主計(jì)算機(jī)的該端口時(shí),請(qǐng)求實(shí)際會(huì)被轉(zhuǎn)發(fā)到虛擬機(jī)上指定的端口,配置文件設(shè)置語(yǔ)法為: 優(yōu)點(diǎn):簡(jiǎn)單、容易理解、容易實(shí)現(xiàn)外網(wǎng)訪問(wèn)虛擬機(jī)。 缺點(diǎn):需映射很多端口時(shí)較麻煩、不支持在宿主機(jī)器上使用小于1024的端口來(lái)轉(zhuǎn)發(fā)(如:不能使用SSL的443端口來(lái)進(jìn)行https連接)。 官網(wǎng)配置文檔地址:https://www./docs/networking/forwarded_ports.html 這種網(wǎng)絡(luò)配置下,只有主機(jī)可以訪問(wèn)虛擬機(jī),如果多個(gè)虛擬機(jī)設(shè)置定在同一個(gè)網(wǎng)段也可以相互訪問(wèn),當(dāng)然虛擬機(jī)也是可以訪問(wèn)外部網(wǎng)絡(luò)的。配置語(yǔ)法如下: 還可以設(shè)置動(dòng)態(tài)IP,配置語(yǔ)法如下: 優(yōu)點(diǎn):安全,只能自己訪問(wèn)。 缺點(diǎn):因私有原有,所以其他團(tuán)隊(duì)成員不能和你協(xié)作。 官網(wǎng)配置文檔地址:https://www./docs/networking/private_network.html 這種配置下,虛擬機(jī)享受實(shí)體機(jī)一樣的待遇,一樣的網(wǎng)絡(luò)配置,vagrant 1.3版本以后這種配置也支持設(shè)定固定IP,配置語(yǔ)法如下: 還可以設(shè)置橋接網(wǎng)卡,配置語(yǔ)法如下: 優(yōu)點(diǎn):方便團(tuán)隊(duì)協(xié)作,別人可以訪問(wèn)你的虛擬機(jī)。 缺點(diǎn):需要有網(wǎng)絡(luò),有路由器分配IP 官網(wǎng)配置文檔地址:https://www./docs/networking/public_network.html 有時(shí)候,我們希望虛擬機(jī)能和我們的主機(jī)共享一些文件夾,這時(shí)候在vagrant的配置文件中進(jìn)行配置來(lái)達(dá)到共享目錄的目的。 vagrant的共享目錄類型有: NFS (適用于Mac OS宿主機(jī)), 配置語(yǔ)法: 官網(wǎng)配置文檔地址:https://www./docs/synced-folders/nfs.html RSync , 配置語(yǔ)法: 官網(wǎng)配置文檔地址:https://www./docs/synced-folders/rsync.html SMB (適用于Windows宿主機(jī)), 配置語(yǔ)法: 官網(wǎng)配置文檔地址:https://www./docs/synced-folders/smb.html VirtualBox 如果你的vagrant使用virtualbox的provider,這是默認(rèn)的共享目錄的類型。這些同步文件夾使用ValualBox共享文件夾系統(tǒng)將文件更改從客戶機(jī)同步到主機(jī),反之亦然。 官網(wǎng)配置文檔地址:https://www./docs/synced-folders/virtualbox.html 注意:配置完成,我們重新啟動(dòng)虛擬機(jī)時(shí)發(fā)現(xiàn)報(bào)錯(cuò)了,這時(shí)候別慌,我們給出解決辦法傳送門。 自定義虛擬機(jī)名稱 自定義虛擬機(jī)主機(jī)名稱 自定義虛擬機(jī)內(nèi)存和CPU 配置好后重啟虛擬機(jī),然后進(jìn)入虛擬機(jī): 使用 使用 通過(guò)本文,我們對(duì)vagrant有了一個(gè)大概的了解,那么用起來(lái)也會(huì)很順手,用到一個(gè)東西,我們還是要追求知其然知其所以然,這樣對(duì)我們自己負(fù)責(zé),同時(shí)遇見問(wèn)題我們也好下手去思考和解決。我就是我,不一樣的煙火~ |
|
來(lái)自: 股海無(wú)涯苦作舟 > 《技術(shù)》