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

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


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


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


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


 wKiom1fLhv3TnFx2AALXJy2rt0w496.png-wh_50

▲整體規劃網絡拓撲圖ide


1、前期工做工具


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


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


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



2、將虛擬機轉換成模板 操作系統


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


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


注:將虛擬機「轉換成模板」的操做,虛擬機不保留、只能做模板使用,如果選擇「克隆爲模板」,則在虛擬機的基礎上,克隆出與此虛擬機"徹底同樣"的虛擬機爲模板,原虛擬機仍然可使用。


 wKiom1fLh9WRJo8XAAErK2nQrB0741.png-wh_50

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


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


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


 wKioL1fLh-2wf5_vAAC9gvDpGtg546.png-wh_50

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


 wKioL1fLiADS1ngcAAC7jlTmFYU232.png-wh_50

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

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



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


經過模板部署虛擬機,有不自定義方式和自定義方式兩種。前者比後者簡單不少,後者須要建立並應用自定義規範。這裏以模板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對系統從新封裝。在批量部署的狀況下,工做量仍是挺大的。


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



3、建立用於自定義部署的自定義規範


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


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


一、把操做系統對應的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/目錄下。


二、建立自定義規範


這項操做是在「自定義規範管事器」中進行。


 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規範



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


下面以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模板部署虛擬機。



5、關於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地址了。

相關文章
相關標籤/搜索