為了使 Automation Assembler 能夠初始化部署到 vSphere 的 Windows 機器,映像必須基於已安裝並設定 Cloudbase-Init 的 vSphere 範本。
建立映像
- 使用 vSphere 建立 Windows 虛擬機器並開啟其電源。
- 在虛擬機器上,登入 Windows。
- 下載 Cloudbase-Init。
- 啟動 Cloudbase-Init 安裝程式 .msi 檔案。
在安裝期間,輸入 Administrator 作為使用者名稱,然後選取以 LocalSystem 身分執行的選項。
其他安裝選項可以保留為預設值。
- 允許安裝執行,但請勿關閉安裝精靈最後的 [已完成] 頁面。
重要: 請勿關閉安裝精靈的最後一頁。
- 安裝精靈的 [已完成] 頁面仍處於開啟狀態,請使用 Windows 導覽至 Cloudbase-Init 安裝路徑,然後在文字編輯器中開啟下列檔案。
conf\cloudbase-init-unattend.conf
- 將
metadata_services
設定為OvfService
,如下所示。如果該設定不存在,請新增該設定。metadata_services=cloudbaseinit.metadata.services.ovfservice.OvfService
- 儲存並關閉
cloudbase-init-unattend.conf
。 - 在同一個資料夾中,在文字編輯器中開啟下列檔案。
conf\cloudbase-init.conf
- 設定
first_logon_behaviour
、metadata_services
和plugins
,如下所示。如果這些設定不存在,請新增這些設定。first_logon_behaviour=always . . . metadata_services=cloudbaseinit.metadata.services.ovfservice.OvfService . . . plugins=cloudbaseinit.plugins.windows.createuser.CreateUserPlugin,cloudbaseinit.plugins.windows.setuserpassword.SetUserPasswordPlugin,cloudbaseinit.plugins.common.sshpublickeys.SetUserSSHPublicKeysPlugin,cloudbaseinit.plugins.common.userdata.UserDataPlugin . . .
如果在 Windows 上使用 IPAM 提供者指派靜態 IP,請在外掛程式清單中包括 cloudbaseinit.plugins.common.networkconfig.NetworkConfigPlugin,以確保正確的 IPAM 整合。
- 儲存並關閉
cloudbase-init.conf
。 - 在安裝精靈的 [已完成] 頁面上,選取執行 Sysprep 以及在 Sysprep 後關閉的選項,然後按一下完成。
備註: VMware 已出現過執行 Sysprep 會阻止映像部署正常運作的情況。
部署時,Automation Assembler 會套用動態產生的自訂規格,這將會中斷網路介面的連線。映像中的擱置中 Sysprep 狀態可能會導致自訂規格失敗並使部署處於中斷連線狀態。
如果您懷疑環境中出現了這種情況,請嘗試在建立映像時將 Sysprep 選項保持停用狀態。 - 在虛擬機器關閉後,使用 vSphere 將其轉換為範本。
其他詳細資料
下表詳述在安裝期間所設定的組態項目。
組態設定 | 用途 |
---|---|
使用者名稱、CreateUserPlugin 和 SetUserPasswordPlugin | Sysprep 完成後,首次開機會使用 CreateUserPlugin 以空白密碼建立使用者名稱 Administrator 帳戶。SetUserPasswordPlugin 允許 Cloudbase-Init 將空白密碼變更為將包含在雲端範本中的遠端存取密碼。 |
首次登入行為 | 此設定會在使用者首次登入時提示使用者變更密碼。 |
中繼資料服務 | Cloudbase-Init 僅會列出 OvfService,不會嘗試尋找 vCenter 中不支援的其他中繼資料服務。這會導致記錄檔更乾淨,否則這些記錄中會填入關於無法找到其他服務的項目。 |
外掛程式 | 透過僅列出具有 OvfService 所支援功能的外掛程式,記錄會變得更乾淨。Cloudbase-Init 依指定的順序執行外掛程式。 |
以 LocalSystem 身分執行 | 此設定支援任何進階初始化命令,這些命令可能需要 Cloudbase-Init 在專用管理員帳戶下執行。 |