vRA 7.3 通過Workflow自定義虛擬機名稱(上)
需求:
在vRA項目的實施過程中,通常客戶希望申請VM時可以自定義虛擬機名稱;
通過Hostname這個屬性字典也是可以實現用戶自定義虛擬機名稱,但是當用戶在同一個Deployment中申請多個虛擬機時就會出錯(虛擬機重名)。
思路:
讓vRA置備虛擬機的過程中調用Workflow,該Workflow實現:自定義虛擬機名稱+唯一自增數字 = 新的虛擬機名稱,然後將新的虛擬機名稱返回給vRA。
1、在VRO中添加vCAC IAAS
登錄vROClient,導航VRO Workflow ->Library ->vRealize Automation ->InfrastructureAdministration ->Configuration,右擊Add an IaaS host添加IAAS Server,在第二步Workflow中會使用到。
2、創建Workflow在Library文件夾下創建PSO文件夾在VRO中創建名為:CustomHostName的Workflow;
2.1 添加Attributes
編輯CustomHostName Workflow,添加4個Attribute,注意Type和Value;
2.2添加Parameters
創建名為:payload的Parameters,類型為:Properties
2.3 添加Scriptable task
在Schema界面中添加Scriptable task命名為:GetVmInfo
在IN頁面中關聯payload變數
在OUT頁面中關聯newHostname和vmID變數;
在GetVmInfo的Scripting編寫以下代碼:
這裡需要注意的是,需要將第9行中的vRA-PSO替換為你環境中的計算機前綴。
2.4 添加Action element
將Action element拖拽到GetVmInfo後面,然後在Search中輸入:getVirtualMachineEntityFromId
雙擊將搜索到的getVirtualMachineEntityFromId,即可添加成功;
切換到IN界面,點擊not set.
選擇vmID;
切換到OUT界面, 將actionResult的Source Parameter設置為:vCACVmEntity
2.5 添加Scriptable task
在Schema界面中添加Scriptable task命名為:UpdateHostName
切換到IN界面中,添加newHostname和vCACVmEntity兩個變數;
在UpdateHostName的Scripting編寫以下代碼:
保存Workflow,自此Workflow編寫完成。
3、添加訂閱
導航管理–> 事件 -> 訂閱;
3.1 新建訂閱
選擇計算機置備;
下一步進入條件頁面,選擇根據條件運行->以下所有項,並添加三個條件:
1、「數據 > 生命周期狀態>生命周期狀態名稱」 等於「VMPSMasterWorkflow32.BuildingMachine」
2、「數據 > 生命周期狀態>狀態階段」 等於 「PRE」
3、「數據 > 計算機 > 計算機類型」 等於 「Virtual Machine」
下一步選擇工作流,選擇剛才創建的CustomHostName工作流;
詳細信息中勾選阻止,超時時間設置為5分鐘,然後點擊完成。
發布
4、創建屬性字典
數據類型:字元串
必須:是
顯示為:文本框
驗證用戶輸入:[a-zA-Z0-9] —這是一個正則表達式,功能是限制用戶最大輸入8 – 11位任意字母和數字。
5、配置藍圖
在藍圖中定義以下2個屬性字典:
Extensibility.Lifecycle.Properties.VMPSMasterWorkflow32.BuildingMachine值*
6、測試
提交同時創建2台VM進行測試;
測試成功。
總結: 通過編寫自定義工作流實現用戶批量申請VM時也能自定義主機名;但如果同時使用了Active Directory 策略,就會有衝突。因為Active Directory 策略調用的工作流是讀取vRA VM置備Properties中的VM Name, 我們創建的工作流更新的是IaaS VM置備Properties中的VM Name。我會在接來下的文章中修改Active Directory 策略工作流,來避免這個問題。
7、導入寫好的工作流
如果不想遍寫工作流,可以直接導入我已寫好的工作流。該工作流打包上傳到Github, 可以下載後直接導入vRO中,並按照第一步在vRO添加vCACIAAS即可。
工作流下載地址:https://github.com/vincenshen/vmware_vro_workflow/blob/master/CustomHostName.workflow
7.1導入工作流
7.2修改工作流
在General界面中,修改VCACHost的Value為你環境中的IaaS Server。
7.3替換代碼中的計算機前綴
這裡需要注意的是,需要將第9行中的vRA-PSO替換為你環境中的計算機前綴。
TAG:虛實之路 |