vSphere部署系列之10——虛擬機模板和規範

vSphere部署系列之10——虛擬機模板和規範


在前面的博文章節中,已搭建了羣集,並啓用了HA和DRS,但還沒有劃分資源池,這種情況已經可以應付實際生產環境。資源池的創建和配置比較簡單、難點在對配額的理解和按需劃分。有興趣的朋友可以網上查閱相關資料,這裏暫不作研究。


vCenter提供了模板功能,可把一臺已部署好的虛擬機轉換爲模板,然後以此模板爲鏡像批量部署虛擬機。這一節是關於虛擬機模板及其管理規範方面的操作。


實驗環境總體規劃,請見前面的博文《vSphere部署系列之03——實驗環境總體規劃》


 wKiom1fLhv3TnFx2AALXJy2rt0w496.png-wh_50

▲總體規劃網絡拓撲圖


一、前期工作


在使用模板之前,需要先安裝"樣板"虛擬機,並且將該虛擬機轉化(或克隆)成"模板",以後再需要此類的虛擬機時,以此爲模板派生或克隆出多臺虛擬機。


本案在羣集中創建基於Windows Server 2008R2系統和 CentOS 6.5系統的兩個虛擬機,名字分別爲Win2008R2-Temp和CentOS-Temp。


在系統中進行一些常規性軟件部署(對於Windows Server 2008R2,還需要激活系統、更新補丁),並安裝好VMware Tools。(VMware Tools的安裝很簡單,具體詳見《vSphere部署系列之05——虛擬機的創建和設置》)



二、將虛擬機轉換成模板 


本案是在vSpherer Client連接vCenter Server的主界面中進行。


將虛擬機轉換成模板,操作很簡單。在vSpherer Client中,定位到要轉換成模板的虛擬機,用鼠標右鍵單擊,從彈出的快捷菜單中選擇"轉換成模板"即可。


注:將虛擬機“轉換成模板”的操作,虛擬機不保留、只能作模板使用,若是選擇“克隆爲模板”,則在虛擬機的基礎上,克隆出與此虛擬機"完全一樣"的虛擬機爲模板,原虛擬機仍然可以使用。


 wKiom1fLh9WRJo8XAAErK2nQrB0741.png-wh_50

▲將虛擬機Win2008R2-Temp轉換爲模板


*按同樣步驟,也將CentOS-Temp轉換成模板。


虛擬機轉換成模板後,在“清單->主機和羣集”左則列表中不顯示,可選擇羣集然後在右則“虛擬機”頁面中查看。也可切換到“清單->虛擬機和模板”中查看。


 wKioL1fLh-2wf5_vAAC9gvDpGtg546.png-wh_50

▲清單->主機和羣集,虛擬機分頁中查看模板


 wKioL1fLiADS1ngcAAC7jlTmFYU232.png-wh_50

▲清單->虛擬機和模板,在左則列表中查看模板,右則摘要中可查看模板信息

注:模板與虛擬機的圖標是不同的



二、從模板部署虛擬機,不自定義方式


通過模板部署虛擬機,有不自定義方式和自定義方式兩種。前者比後者簡單很多,後者需要創建並應用自定義規範。這裏以模板Win2008R2-Temp爲例,先介紹不自定義方式的步驟。


在“清單->虛擬機和模板”中,定位到模板Win2008R2-Temp,用鼠標右鍵單擊,從彈出的快捷菜單中選擇“從該模板部署虛擬機”,將會彈出“部署模板”對話框。


 wKioL1fLiIbzLDU-AADTJdkz5Hw338.png-wh_50

▲從模板Win2008R2-Temp部署虛擬機

注:“轉換成虛擬機”子菜單,可將模板重新轉爲虛擬機。當模板系統需要更改配置或是多安裝某些軟件時,可通過此方法實現。


 wKiom1fLiJnyYKx5AACiTuMLjnc425.png-wh_50

▲部署模板對話框,名稱和位置設置,在這裏爲虛擬機命名、選擇位置

這裏只看到數據中心SQ-DataCenter,如果數據中心中有歸類的文件夾,也是可見、可選的。


 wKioL1fLiJuCvltCAADIPrxK6NY432.png-wh_50

▲主機和羣集設置,在此選擇虛擬機將要駐留的主機

由於環境中配置了羣集,這裏要先選擇羣集 


 wKioL1fLiJzxhDU-AAChOTJFmQI480.png-wh_50

▲主機和羣集設置,在此選擇虛擬機將要駐留的主機

如果羣集中有配置了資源池,還會有選擇資源池的步驟。


 wKiom1fLiJ-xAlAPAADO4a4bSho630.png-wh_50

▲存儲器設置,在此選擇虛擬機將要使用的存儲位置,這裏選擇共享存儲SQST01-244001

虛擬機磁盤格式設置爲默認的與格式相同。


 wKiom1fLiKCjsA4KAAClP4lp_dI671.png-wh_50

▲自定義設置, 在此選擇是否對虛擬機自定義,這一步很關鍵,這裏選擇“不自定義”,

如果選擇“使用現有自定義規範自定義”,則需要使用相關的規範。後文會講述。

“創建後打開此虛擬機的電源”默認是不勾選的,這裏手動勾選。


 wKioL1fLiKLCwgbPAAEF8tqZF1A936.png-wh_50

▲虛擬機設置摘要,在此單擊“完成”按鍵,即完成該模板部署操作

注,此處不建議選擇“編輯虛擬機硬件”,可在虛擬機部署完畢後再修改


模板部署完成後,在任務欄中,可看到虛擬機被創建的進度。虛擬機創建完成後,在“清單->主機和羣集”和“清單->虛擬機和模板”的列表中可見。


通過以上步驟部署的虛擬機跟模板一模一樣,有相同的IP、主機名及配置,對於Windows操作系統而言,其SID也是一樣。這在網絡中,尤其有域環境中,會出現問題。需要進系統使用sysprep對系統重新封裝。在批量部署的情況下,工作量還是挺大的。


有一個工具可以幫助解決這些問題,那就是自定義規範管理器。



三、創建用於自定義部署的自定義規範


vCenter可使用sysprep程序對Windows Server等產品進行後期定製,其底層的原理與Widows系統裏的重封裝是一樣的,只是把sysprep重新封裝的準備工作集成到vCenter中,並且是在通過模板部署虛擬機時進行,而不是在製作模板前進行。


下面通過對Windows Server 2008 R2 SP1行定製,介紹"定製規範"的使用。


1、把操作系統對應的sysprep文件拷貝到vCenter服務器特定的目錄下


對於Windows Server 2008 R2 SP1而言,sysprep文件在系統安裝目錄中可以找到,具體路徑爲C:/windows/sysyem32/sysprep,在運行窗口中運行sysprep命令,並按回車,即可進入C:/windows/sysyem32/目錄。


本案中,由於 vCenter所在的系統(本案爲虛擬機sqvcenter)就是Windows Server 2008 R2 SP1。直接登錄該系統,將C:/windows/sysyem32/ 目錄下的sysprep文件拷貝到C:/program Files/VMware/infrastructure/VirtualCenter Server/目錄下(VirtualCenter Serve目錄是vCenter安裝時自動生成的)即可。


wKioL1fLibDDbF8lAABZoYmoEBU830.png-wh_50


如果模板爲Windows Server 2003/2003R2的系統,sysprep文件,需要從系統鏡像對/support/tooles/deploy.cab解壓得到,然後通過遠程操作,將其拷貝到

C:/program Files/VMware/infrastructure/VirtualCenter Server/目錄下。


2、創建自定義規範


這項操作是在“自定義規範管事器”中進行。


 wKioL1fLiniTXwg5AAFqMB7EtO8198.png-wh_50

▲在“主頁”中找到“自定義規範管理器”,單擊進入


在自定義規範管事器中,可創建適用於Window Server和Linux操作系統的規範。


下面,創建一個適用於Winodws Server(包括2003/2008/2012等版本)系統的規範。


 wKiom1fLihny4d8TAADnPrEe1As727.png-wh_50

▲在“自定義規範管事器”中,右擊,在彈出的菜單裏選擇“新建”,將會彈出“新建自定義規範”對話框。 


 wKiom1fLij_B7N6YAACOXypvHSU293.png-wh_50

▲“新建自定義規範”對話框,第一步是選擇目標虛擬機操作系統和設備規範名稱,

在“目標虛擬機操作系統”下拉列表框中有“Windows”和“Linux”兩項,這裏選擇Windows,

規範名稱需自行填寫,爲了便於識別,一般以“操作系統+業務類型”進行命名,這裏填寫爲Win2008R2_SP1。也可填寫更詳細的描述。


 wKiom1fLikCgvmieAAB0eCW-pG4652.png-wh_50

▲註冊信息設置


 wKioL1fLikHx2km8AACXUhhrNoM993.png-wh_50

▲計算機名稱設置,選擇“在部署嚮導中輸入名稱”


 wKioL1fLikKCNKiTAACJ8e67VPs591.png-wh_50

▲Windows許可證設置,本案模板是通過KMS激活了的,這裏不需要設置產品密鑰。


wKiom1fLikSDWZx5AAB6R6rhI20151.png-wh_50 

▲管理員密碼設置,管理員密碼可留空以保留原鏡像虛擬機管理員密碼,或指定一個新的密碼


 wKiom1fLikXyhJmVAABy5Z_LhlU800.png-wh_50

▲時區設置


 wKioL1fLikazSTM0AAB0QgrZ_3k943.png-wh_50

▲登錄時命令運行設置,保留爲空


 wKioL1fLikfxWExmAAB93XK-Uaw505.png-wh_50

▲網絡設置,選擇“自定義設置”


 wKiom1fLikmxDziYAACUA_nn3aE021.png-wh_50

▲網絡接口自定義設置,IP地址默認爲DHCP獲取方式,單擊“…”屬性按鍵,將彈出“網絡屬性”對話框


 wKioL1fLikqjl5rOAAB2qIhV5-c749.png-wh_50

▲網絡屬性對話框,在此設置子網掩碼、網關和DNS等,單擊“確定”按鈕,返回網絡接口自定義對話框


 wKiom1fLikyS6n3_AABodenOJZc773.png-wh_50

▲網絡接口自定義設置,此時IP地址爲“提示用戶”方式


 wKiom1fLik7CqfsEAACDkjEUsM8667.png-wh_50

▲工作組或域設置,這裏設置爲本地工作組WORKGROUP


 wKioL1fLik_hHU01AAB1yAPZtdI603.png-wh_50

▲操作系統選項設置,這一項是爲了生成新SID,一定要勾選


 wKiom1fLilGxmNXzAACk0vRr0sM161.png-wh_50

▲設置摘要,單擊“完成”按鈕以完成自定義規範。


*按類似的步驟,再創建適用於Linux系統的規範CentOS6.5_x64。

其中在“屬性”的目標虛擬機操作系統一項中,選項Linux;

在“計算機名稱”一項中需要設置域名,將其至爲“localhost”,如下圖所示;

“工作組或域”一項則沒有,這三處跟Windows規範有所不同。


 wKioL1fLi17hH9MwAACd-LNzu7o952.png-wh_50

▲Linux規範中計算機名一項,將域名設置爲“localhost”


規範創建完成後,會在自定義管理器中羅列。


 wKiom1fLi4rQtELTAACIgrEnvSs086.png-wh_50

新建的CentOS6.5_x64規範和Win2008R2_SP1規範



四、從模板部署虛擬機,使用自定義規範方式 


下面以Windows系統爲例,通過使用自定義規範的方式,從模板Win2008R2-Temp部署虛擬機Win2k8_241.42。


在“清單->虛擬機和模板”中,定位到模板Win2008R2-Temp,用鼠標右鍵單擊,從彈出的快捷菜單中選擇“從該模板部署虛擬機”,將會彈出“部署模板”對話框。


前面的步驟與前面第二節中的是一樣的,依次設置虛擬機名稱、駐留的主機、存放的存儲等,直到“客戶機自定義”。


 wKioL1fLi8ej67hqAACp9543cPo043.png-wh_50

▲客戶機自定義,這裏選項“使用現在自定義規範自定義”並選擇規範“Win2008R2_SP1”


 wKiom1fLi8iyrbUkAACWAPintOE521.png-wh_50

▲用戶設置,在此設置NetBIOS名稱(即系統主機名)和IP地址

因爲在規範“Win2008R2_SP1”規定了NetBIOS名稱爲“在部署嚮導中輸入名稱”,IP地址爲“當使用規範時,提示用戶輸入地址”方式。

這也是使用規範後, 唯一需要進行的手動設置的地方。其他設置交由規範自動處理。


 wKiom1fLi8nSCub3AAC7JJToHW0196.png-wh_50

▲虛擬機設置摘要,在此單擊“完成”按鍵,即完成該模板部署操作

注,此處不建議選擇“編輯虛擬機硬件”,可在虛擬機部署完畢後再修改


由於在“客戶機自定義”步驟中,勾選了“創建後打開此虛擬機的電源”,該虛擬機創建完成後,會自行啓動。首次啓動後,系統會自動按已設定的規範進行配置,並更新SID,此過程不需要人爲干預。


 wKiom1fLi9Kwm-T4AAFm-O04SUQ255.png-wh_50

▲虛擬機自動重裝封裝過程


打開該虛擬機控制檯,觀察訪虛擬機的運行情況,可以看到,虛擬機先開機到登錄界面,過大概10秒左右(此期間不需要人爲操作),會自動啓起,然後自動進行sysprep重新封裝。直到系統再次重啓到登錄界面時,使用規範中設置的管理員密碼進行登錄即可。


 wKiom1fLi9rA6ysvAACnXXa6F3s550.png-wh_50

▲從Win2k8_241.42摘要中,可看到該虛擬機此時的IP地址和主機名


 wKioL1fLi9TypEU_AAD-zcadwtw193.png-wh_50

▲進入虛擬機系統,在cmd命令窗口中輸入“whoami /user”,可查看本機的SID號


*按類似的操作,從CentOS-Temp模板部署虛擬機。



五、關於CentOS使用自定義規範方式 


在vSphere5.5環境中,在做了CentOS6.5 x64模板,並創建了linux自定義規範之後,在從CentOS6.5 x64模板部署虛擬機時,會出現不能使用自定義規範的情況。如下圖所示。


 wKioL1fLjHWz-cPPAACvK6SmwHM622.png-wh_50

▲從CentOS6.5 x64模板部署虛擬機時,被提示不支持自定義客戶機操作系統。



本案在操作過程中,也遇到這個問題。將CentOS-Temp模板重新轉換成虛擬機,運行並查看,發現Perl默認已安裝(網上很多資料說跟這個有關),VMTools已安裝(當前vSphere5.5中最新的版本)並正常運行。但就是不能使用自定義規範。有資料說VMware早已不支持CentOS的自定義規範,但在官方資料未到明確的說法。


後經排查,發現以上情況與模板/虛擬機的“客戶機操作系統”性質有關。筆者初時在創建CentOS-Temp虛擬機時,“客戶機操作系統”選擇的是“CentOS4/5/6 (64位)。”後來重新建虛擬機,將“客戶機操作系統”性質一項設置爲“Red Hat Enterprise Linux 6 (64位)”,虛擬機配置完成後,再轉換成模塊,便可以從自定義規範部署。

 

wKiom1fM4Tmi_Z8LAADNIrUthNY542.png-wh_50

▲CentOS-Temp模板的摘要,

從中可以看到該模板的客戶機操作系統屬性爲“Red Hat Enterprise Linux 6 (64位)”。


 wKioL1fLjIuidZ3bAAEL1U-3e_Q783.png-wh_50

▲從CentOS-Temp模板部署虛擬機,這裏可選擇之前創建的CentOS6.5_x64規範。



在常規的按“不自定義”方式部署的虛擬機時,會出現因虛擬機MAC地址(在虛擬機屬性中可查看)與虛擬機客戶系統MAC地址(在ifcfg-eth0配置文件中可查看)不一致而出現虛擬機無法上網的情況。需要在客戶系統的配置文件ifcfg-eth0中修改MAC,使之與虛擬機的MAC地址一致,並重啓系統(需要連接重啓兩次),才能連通網絡。


在這裏使用自定義規範後,虛擬機客戶系統內會自動生成一個ifcfg-eth1(即多了一個網卡eth1)配置文件,該配置文件的MAC(ifcfg-eth1中沒有列出來)與虛擬機實際MAC地址是一致的,且IP爲創建虛擬機時在“用戶設置”一步中指定的,系統通過該eth1上網。


但在由於模板中爲eth0是指定了網關,虛擬機客戶系統在創建eth1時無法爲其指定網關(從上圖可看出,缺少GATEWAY字段),因而出現網絡只侷限在本地VLAN網段——本案中VLAN241是可以pin通baidu.com的,但此時的CentOS虛擬機ping baidu.com被提示找不到主機。


解決的方法是,將ifcfg-eth0中的GATEWAY字段刪除,並在ifcfg-eth1中添加GATEWAY字段和具體網關地址,本案爲“GATEWAY=10.1.241.254”,修改完成後,重啓network服務後,ping baidu.com有返回。


wKioL1fg4jeB8xDtAACak9C9caI457.png-wh_50

▲ifcfg-eth0配置內容


wKiom1fg4kWjfVx9AAB5UtCR5i8336.png-wh_50

▲ifcfg-eth1配置內容


wKioL1fg4lCziNQmAADhArjOHw8353.png-wh_50

▲虛擬機屬性中的MAC地址


不過,對於一些應用場景,多出了一個網卡eth1會讓人感到不習慣。若要使用ifcfg-eth0,手動將ifcfg-eth1文件刪除,同時修改ifcfg-eth0中的MAC地址(當然也要更改IP地址),使之與虛擬機的MAC地址一致,並重啓系統(需要連接重啓兩次)即可。


以上eth0的MAC地址與虛擬機MAC不匹配的情況,與虛擬機中/etc/udev/rules.d/70-persistent-net.rules有關,此文件記錄了虛擬機在第一次創建時系統得到的網卡信息及MAC地址。在上述的“不自定義”和“使用自定義規範”克隆的虛擬機中,爲解決MAC問題,更改ifcfg-eth0是一種方法,另一種方式則是刪除該70-persistent-net.rules文件,並重啓系統(也是需要連接重啓兩次),這樣客戶系統就可以學習到新的eth0 MAC地址了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章