使用 Windows Sysprep 搭配 EC2Launch 建立 AMI - Amazon Elastic Compute Cloud

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Windows Sysprep 搭配 EC2Launch 建立 AMI

當您從已安裝 EC2Launch 代理程式的執行個體建立映像時,EC2Launch 會在映像準備就緒時執行特定任務。這包括使用 Windows Sysprep。如需詳細資訊,請參閱Windows Sysprep 階段

EC2Launch 會為 Windows Sysprep 提供預設回應檔案和批次檔案,這可自動化和保護您 AMI 上的映像準備程序。您可選擇性修改這些檔案。這些檔案預設位於下列目錄:C:\ProgramData\Amazon\EC2-Windows\Launch\Sysprep

重要

請不要使用 Windows Sysprep 來建立執行個體備份。Windows Sysprep 會移除系統專屬資訊。如果您移除此資訊,執行個體備份可能產生意外結果。

Windows Sysprep 的 EC2Launch 回應和批次檔案

Windows Sysprep 的 EC2Launch 回應檔案和批次檔案包含下列內容:

Unattend.xml

這是預設回應檔案。如果您執行 SysprepInstance.ps1,或在使用者介面中選擇 ShutdownWithSysprep,系統會從這個檔案讀取設定。

BeforeSysprep.cmd

自訂此批次檔案可在 EC2Launch 執行 Windows Sysprep 前執行命令。

SysprepSpecialize.cmd

自訂此批次檔案可在 Windows Sysprep 特製化階段期間執行命令。

使用 EC2Launch 執行 Windows Sysprep

完整安裝 Windows Server 2016 和更新版本 (包含桌面體驗) 後,您可以使用 EC2Launch 手動執行 Windows Sysprep,或使用 EC2 Launch 設定應用程式執行 Sysprep。

使用 EC2Launch 設定應用程式執行 Windows Sysprep
  1. 在 Amazon EC2 主控台中,尋找或建立 Windows Server 2016 或更新版本 AMI。

  2. 從 AMI 啟動 Windows 執行個體。

  3. 連線到您的 Windows 執行個體並加以自訂。

  4. 搜尋並執行 EC2LaunchSettings 應用程式。根據預設,其位於下列目錄:C:\ProgramData\Amazon\EC2-Windows\Launch\Settings

    EC2 Launch Settings application (EC2 Launch 設定應用程式)
  5. 視需要選取或清除選項。這些設定存放在 LaunchConfig.json 檔案中。

  6. 針對 Administrator Password (管理員密碼),請執行下列其中一項作業:

    • 選擇 Random (隨機)。EC2Launch 會產生密碼並以使用者金鑰將其加密。系統會在執行個體啟動後停用此設定,以便執行個體重新開機或停止再啟動時,能持續使用這個密碼。

    • 選擇 Specify (指定) 並輸入符合系統要求的密碼。系統會將該密碼以純文字存放於 LaunchConfig.json,並在 Windows Sysprep 設定管理員密碼後予以刪除。如果您立即關機,即會立即設定密碼。EC2Launch 會以使用者金鑰加密該密碼。

    • 選擇 DoNothing (不執行動作),並在 unattend.xml 檔案中指定密碼。如果您未在 unattend.xml 中指定密碼,會停用管理員帳戶。

  7. 選擇 Shutdown with Sysprep (使用 Sysprep 關機)

使用 EC2Launch 手動執行 Windows Sysprep
  1. 在 Amazon EC2 主控台中尋找或建立您想要複製的 Windows Server 2016 或更新版本 Datacenter 版 AMI。

  2. 啟動和連線至 Windows 執行個體。

  3. 自訂執行個體。

  4. LaunchConfig.json 檔案中指定設定。根據預設,此檔案位於 C:\ProgramData\Amazon\EC2-Windows\Launch\Config 目錄。

    針對 adminPasswordType,請指定下列其中一個值:

    Random

    EC2Launch 會產生密碼並以使用者金鑰將其加密。系統會在執行個體啟動後停用此設定,以便執行個體重新開機或停止再啟動時,能持續使用這個密碼。

    Specify

    EC2Launch 會使用您在 adminPassword 中指定的密碼。如果該密碼不符合系統要求,EC2Launch 會改為產生隨機密碼。系統會將該密碼以純文字存放於 LaunchConfig.json,並在 Windows Sysprep 設定管理員密碼後予以刪除。EC2Launch 會以使用者金鑰加密該密碼。

    DoNothing

    EC2Launch 會使用您在 unattend.xml 檔案中指定的密碼。如果您未在 unattend.xml 中指定密碼,會停用管理員帳戶。

  5. (選用) 請在 unattend.xml 和其他組態檔案中指定設定。如果您計畫安裝,就不需要變更這些檔案。根據預設,檔案位於下列目錄:C:\ProgramData\Amazon\EC2-Windows\Launch\Sysprep

  6. 在 Windows PowerShell 中,執行 ./InitializeInstance.ps1 -Schedule。根據預設,指令碼位於下列目錄:C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts。此指令碼會排程執行個體在下一次開機期間初始化。您必須在執行下一步的 SysprepInstance.ps1 指令碼前,執行此指令碼。

  7. 在 Windows PowerShell 中,執行 ./SysprepInstance.ps1。根據預設,指令碼位於下列目錄:C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts

系統會將您登出執行個體,然後執行個體會關機。如果您檢查 Amazon EC2 主控台中的 Instances (執行個體) 頁面,執行個體狀態會從 Running 變更為 Stopping,然後變更為 Stopped。這時便能放心地從這個執行個體建立 AMI。

啟動自訂 AMI 時更新 Server 2016 和更新版本的中繼資料/KMS 路由

若要在啟動自訂 AMI 時更新 Server 2016 和更新版本的中繼資料/KMS 路由,請執行下列其中一項動作:

  • 執行 EC2LaunchSettings GUI (C:\ProgramData\Amazon\EC2-Windows\Launch\Settings\Ec2LaunchSettings.exe),然後選取選項以搭配 Windows Sysprep 來關機。

  • 在建立 AMI 之前,請執行 EC2LaunchSettings,且不搭配 Windows Sysprep 來關機。這樣會將 EC2 啟動初始化任務設為在下一次開機時執行,如此將會根據執行個體的子網來設定路由。

  • 在從 PowerShell 建立 AMI 之前,手動重新排程 EC2 啟動初始化任務。

    重要

    在重新排定任務之前,請記下預設密碼重設行為。

  • 若要在發生 Windows 啟用失敗或與執行個體中繼資料通訊失敗的執行中的執行個體上更新路由,請參閱「無法啟用 Windows」