為了使 Cloud Assembly 能夠初始化部署到 vSphere 的 Windows 機器,它必須基於已安裝並設定 Cloudbase-Init 的範本。

  1. 使用 vSphere 建立 Windows 虛擬機器並開啟其電源。
  2. 在虛擬機器上,登入 Windows。
  3. 下載 Cloudbase-Init。

    https://cloudbase.it/cloudbase-init/#download

  4. 啟動 Cloudbase-Init 安裝程式 .msi 檔案。

    在安裝期間,輸入 Administrator 作為使用者名稱,然後選取以 LocalSystem 身分執行的選項。

    Cloudbase-Init 安裝精靈帳戶頁面

    其他安裝選項可以保留為預設值。

  5. 允許安裝執行,但請勿關閉安裝精靈最後的 [已完成] 頁面。
    重要: 請勿關閉安裝精靈的最後一頁。
  6. 安裝精靈的 [已完成] 頁面仍處於開啟狀態,請使用 Windows 導覽至 Cloudbase-Init 安裝路徑,然後在文字編輯器中開啟下列檔案。

    conf\cloudbase-init-unattend.conf

  7. metadata_services 設定為 OvfService,如下所示。

    metadata_services=cloudbaseinit.metadata.services.ovfservice.OvfService

  8. 儲存並關閉 cloudbase-init-unattend.conf
  9. 在同一個資料夾中,在文字編輯器中開啟下列檔案。

    conf\cloudbase-init.conf

  10. 設定 first_logon_behaviourmetadata_servicesplugins,如下所示。
    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
    . . .
  11. 儲存並關閉 cloudbase-init.conf
  12. 在安裝精靈的 [已完成] 頁面上,選取執行 Sysprep 以及在 Sysprep 後關閉的選項,然後按一下完成
    備註: VMware 已出現過執行 Sysprep 會阻止映像部署正常運作的情況。

    部署時,Cloud Assembly 會套用動態產生的自訂規格,這將會中斷網路介面的連線。映像中的擱置中 Sysprep 狀態可能會導致自訂規格失敗並使部署處於中斷連線狀態。

    如果您懷疑環境中出現了這種情況,請嘗試在建立映像時將 Sysprep 選項保持停用狀態。
    Cloudbase-Init 安裝精靈的最後一頁
  13. 在虛擬機器關閉後,使用 vSphere 將其轉換為範本。

其他詳細資料

下表詳述在安裝期間所設定的組態項目。

組態設定 用途
使用者名稱、CreateUserPlugin 和 SetUserPasswordPlugin Sysprep 完成後,首次開機會使用 CreateUserPlugin 以空白密碼建立使用者名稱 Administrator 帳戶。SetUserPasswordPlugin 允許 Cloudbase-Init 將空白密碼變更為將包含在雲端範本中的遠端存取密碼。
首次登入行為 此設定會在使用者首次登入時提示使用者變更密碼。
中繼資料服務 Cloudbase-Init 僅會列出 OvfService,不會嘗試尋找 vCenter 中不支援的其他中繼資料服務。這會導致記錄檔更乾淨,否則這些記錄中會填入關於無法找到其他服務的項目。
外掛程式 透過僅列出具有 OvfService 所支援功能的外掛程式,記錄會變得更乾淨。Cloudbase-Init 依指定的順序執行外掛程式。
以 LocalSystem 身分執行 此設定支援任何進階初始化命令,這些命令可能需要 Cloudbase-Init 在專用管理員帳戶下執行。