天天看點

vagrant學習筆記 - Vagrantfile

下面是一組服務測試mfs的vagrant file範例:

儲存Vagrantfile檔案以後,執行如下指令檢視虛機配置:

執行up指令,批量建立虛機并啟動。

如果隻想啟動一台,執行:

vagrant基礎配置

Vagrantfile 配置檔案的格式簡單介紹一下。

1 檔案頭

說明檔案的格式資訊,處理方式等。

指定使用ruby格式,vi進行編輯的,所有檔案都采用這個檔案頭即可。

2 通用資料

設定一些基礎資料,供配置資訊中調用。

這裡是定義一個hashmap,以key-value方式來存儲vm主機名和ip位址。

3 配置資訊

參數2,表示的是目前配置檔案使用的vagrant configure版本号為Vagrant 1.1+,如果取值為1,表示為Vagrant 1.0.x Vagrantfiles,舊版本暫不考慮,記住就寫2即可。

本文隻對configure 2作說明,舊版本不多解釋了。

do … end 為配置的開始結束符,所有配置資訊都寫在這兩段代碼之間。

config是為目前配置命名,你可以指定任意名稱,如myvmconfig,在後面引用的時候,改為自己的名字即可。

3.1 基本配置資訊

3.1.1 鏡像

3.1.2 定義vm的configure配置節點

表示在config配置中,定義一個名為mfsmaster的vm配置,該節點下的配置資訊命名為mfsmaster_config;

如果該Vagrantfile配置檔案隻定義了一個vm,這個配置節點層次可忽略。

3.1.2.1 vm網絡環境配置

vagrant的網絡連接配接方式有三種:

NAT : 預設建立,用于讓vm可以通過host轉發通路區域網路甚至網際網路。

host-only : 隻有主機可以通路vm,其他機器無法通路它。

bridge : 此模式下vm就像區域網路中的一台獨立的機器,可以被其他機器通路。

host-only 模式的IP可以不指定,而是采用dhcp自動生成的方式,如 :

配置目前項以後,如果host有多個網絡擴充卡,第一次啟動會詢問橋接到哪個網絡,如:

我使用的是wifi,選擇1,繼續。

3.1.2.2 同步檔案夾配置

用來讓host與vm二者進行檔案同步。

預設地,vagrant會把工作目錄映射到vm的/vagrant目錄,如果需要增加更多同步檔案夾,使用上面的配置,第一個檔案夾為host主機的目錄,第二個檔案夾為vm中的目錄。

3.1.2.3 設定主機名

指定vm的hostname,會覆寫vm中/etc/hostsname中的設定。

3.1.2.4 端口轉發

guest和host是必須的,還有幾個可選屬性:

guest_ip:字元串,vm指定綁定的Ip,預設為0.0.0.0

host_ip:字元串,host指定綁定的Ip,預設為0.0.0.0

protocol:字元串,可選TCP或UDP,預設為TCP

3.1.2.5 vm提供者配置

3.1.2.2.1 vm provider通用配置

虛機容器提供者配置,對于不同的provider,特有的一些配置,此處配置資訊是針對virtualbox定義一個提供者,命名為vb,跟前面一樣,這個名字随意取,隻要節點内部調用一緻即可。

配置資訊又分為通用配置和個性化配置,通用配置對于不同provider是通用的,常用的通用配置如下:

3.1.2.2.2 vm provider個性化配置(virtualbox)

上面的provider配置是通用的配置,針對不同的虛拟機,還有一些的個性的配置,通過vb.customize配置來定制。

對virtual box的個性化配置,可以參考:<code>VBoxManage modifyvm</code> 指令的使用方法。其他虛機的provider,暫時未做測試。

擴充一下,如果建立的虛機很多,vm都混雜在一起,我們都知道virtualbox支援對vm進行分組。要在vagrant使用分組,可以在mfs的vagrantfile中如下自定義:

參數說明:

分組名是路徑格式,/開始,表示第一級目錄,可以指定多級目錄,如/mfs/chunk;

可以指定多個分組,用逗号分開,如:“/dev,/mfs”

每一個vm建立以後,都會放到mfs分組裡。可以在virtualbox管理界面檢視。

3.1.3 一組相同配置的vm

前面配置了一組vm的hash map,定義一組vm時,使用如下節點周遊。

如果不想定義app_servers,下面也是一種方案:

3.2 中央倉庫配置

指定box鏡像push釋出的位址,供box鏡像管理者使用。普通使用者不需關心。

3.3 vm部署

用來加載box以後,對vm的環境進行一些定制,比如設定環境變量,安裝軟體,部署程式等。如:

這部分内容不少,待續。

3.4 其他

還有很多很多配置,暫時沒用到,待續。

詳細的文檔可參考:

<a href="http://informatica.uv.cl/~gabriel/docs/manual_Virtual_Box_html/ch08.html#idp21992144">http://informatica.uv.cl/~gabriel/docs/manual_Virtual_Box_html/ch08.html#idp21992144</a>