建立影像配方的新版本 - EC2Image Builder

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

建立影像配方的新版本

本節說明如何建立影像配方的新版本。

從主控台建立新的映像配方版本

當您建立新的配方版本時,它與建立新配方幾乎相同。不同之處在於,在大多數情況下,某些詳細信息被預先選擇以匹配基本配方。下列清單說明建立新方案與建立現有方案的新版本之間的差異。

新版本中的基本配方詳細信息
  • 名稱不可編輯

  • 版本 — 必要。此基本詳細資料未預先填入目前版本或任何類型的序列。輸入您要以格式建立的版本號碼<major>。 <minor>。 <patch>。如果版本已存在,則會遇到錯誤。

  • 擇圖像選項-預先選擇,但您可以對其進行編輯。如果您變更基本影像來源的選擇,可能會遺失其他詳細資料,這取決於您選擇的原始選項。

    若要查看與基本影像選取項目相關聯的詳細資料,請選擇符合您選取範圍的索引標籤。

    Managed image
    • 映像作業系統 (OS)不可編輯

    • 映像名稱 — 根據您為現有方案所做的基本映像選擇組合預先選取。但是,如果您變更「選取影像」選項,則會遺失預先選取的影像名稱

    • 自動版本控制選項 — 與您的基本配方匹配。此映像檔選項預設為 [使用選取的作業系統版本] 選項。

      重要

      如果您使用語義版本控制來啟動管道構建,請確保將此值更改為「使用最新的可用操作系統版本」。若要進一步瞭解 Image Builder 資源的語意版本控制,請參閱Image Builder 中的語義版本

    AWS Marketplace image
    • 訂閱 — 此索引標籤應該是開啟的,而訂閱的映像來自 AWS Marketplace 應預先選擇以匹配您的基本配方。如果您變更方案使用的影像做為其基本影像,可能會遺失其他詳細資料,這些詳細資料取決於您選擇的原始影像。

    如需關於 AWS Marketplace 產品,請參閱「購買產品AWS Marketplace 買家指南

    Custom AMI
    • AMI識別碼 — 必須填寫。但是,此設定不會預先填入您的原始項目。您必須輸入基本映像檔的 AMI ID。

  • 執行個體組態 — 已預先選取設定,但您可以編輯它們。

    • 系統管理員代理程式 — 您可以選取或清除此核取方塊,以控制系統管理員代理程式在新映像上的安裝。依預設,會清除此核取方塊,以便在新映像中包含系統管理員代理程式。若要從最終映像中移除 Systems Manager 代理程式,請選取核取方塊,讓代理程式不會包含在您的AMI.

    • 使用者資料 — 當您啟動建置執行個體時,您可以使用此區域提供命令或要執行的命令指令碼。但是,此值會取代 Image Builder 可能已加入的任何指令,以確保已安裝「Systems Manager」。這些命令包括在建立新映像之前,Image Builder 通常針對 Linux 映像執行的清理指令碼。

      注意
      • 如果您輸入使用者資料,請確定系統管理員代理程式已預先安裝在您的基礎映像上,或將安裝包含在使用者資料中。

      • 對於 Linux 映像檔,請透過包含建立perform_cleanup在使用者資料指令碼中命名的空白檔案的命令來執行清理步驟。Image Builder 會偵測到此檔案,並在建立新映像之前執行清理程序檔。如需詳細資訊和範例指令碼,請參閱Image Builder 的安全性最佳做法

  • 工作目錄 — 預先選取,但您可以對其進行編輯。

  • 元件 — 已包含在方案中的元件會顯示在每個元件清單 (建置與測試) 結尾的 [選取的元件] 區段中。您可以移除或重新排序選取的元件,以符合您的需求。

    CIS強化元件不遵循 Image Builder 方法中的標準元件排序規則。CIS強化元件一律會持續執行,以確保基準測試會針對您的輸出影像執行。

    注意

    建置和測試元件清單會根據元件擁有者類型顯示可用的元件。若要為您的方案新增或更新元件,請為您要尋找的元件選取擁有者類型。例如,如果您想要新增與您訂閱的基礎映像相關聯的元件 AWS Marketplace,Third party managed從搜尋列旁的擁有者類型清單中選取。

    您可以為選取的元件設定下列設定:

    • 版本控制選項 — 預先選取,但您可以變更它們。我們建議您選擇 [使用最新的可用元件版本] 選項,以確保映像組建始終會選取最新版本的元件。如果您需要在方案中使用特定元件版本,您可以選擇 [指定元件版本],然後在出現的 [元件版本] 方塊中輸入版本。

    • 輸入參數 — 顯示元件接受的輸入參數。「」會預先填入方案先前版本的值。如果您是第一次在此方案中使用此元件,且已為輸入參數定義了預設值,則預設值會顯示在「值」(Val ue) 方塊中,並顯示灰色文字。如果未輸入其他值,Image Builder 會使用預設值。

      如果需要輸入參數,但未在組件中定義預設值,則必須提供值。如果缺少任何必要參數且未定義預設值,Image Builder 將不會建立配方版本。

      重要

      元件參數為純文字值,且已登入 AWS CloudTrail建議您使用 。 AWS Secrets Manager 或 AWS Systems Manager 參數存儲來存儲您的秘密。如需有關 Secrets Manager 的詳細資訊,請參閱什麼是 Secrets Manager?AWS Secrets Manager 使用者指南。如需關於 AWS Systems Manager 參數存放區,請參閱 AWS Systems Manager 參數存放區 AWS Systems Manager 使用者指南

    若要展開「版本控制」選項或「輸入」參數的設定,您可以選擇設定名稱旁邊的箭頭。若要展開所有選取零組件的所有設定,您可以將全部展開開關切換為關閉和開啟。

  • 儲存 (磁碟區) — 已預先填入。根磁碟區裝置名稱快照IOPS選取項目都無法編輯。但是,您可以變更所有剩餘的設定,例如「大小」。您也可以新增磁碟區,以及加密新磁碟區或現有磁碟區。

    若要為 Image Builder 在來源區域 (執行組建的位置) 的帳戶下建立的映像加密磁碟區,您必須在映像配方中使用儲存磁碟區加密。在組建發佈階段執行的加密僅適用於散佈至其他帳戶或區域的映像。

    注意

    如果您對磁碟區使用加密,則必須分別為每個磁碟區選取金鑰,即使金鑰與根磁碟區所用的金鑰相同。

若要建立新的映像配方版本:
  1. 在配方詳細資料頁面的頂端,選擇 [建立新版本]。這會帶您前往 [建立映像配方] 頁面。

  2. 若要建立新版本,請進行變更,然後選擇 [建立映像配方]。

如需建立映像管線時如何建立映像配方的詳細資訊,請參閱步驟 2:選擇食譜本指南的「入門」一節。

創建一個圖像配方 AWS CLI

若要使用影像產生器create-image-recipe指令建立影像配方 AWS CLI,請依照下列步驟執行:

必要條件

執行本節中的 Image Builder 指令之前,從 AWS CLI,您必須建立配方使用的元件。下列步驟中的影像配方範例是指本指南一從中建立自訂元件 AWS CLI節中建立的範例元件。

建立元件之後,或如果您使用現有的元件,請注ARNs意您要包括在配方中的內容。

  1. 創建一個CLI輸入JSON文件

    您可以使用內嵌命令參數為命create-image-recipe令提供所有輸入。但是,生成的命令可能很長。若要簡化指令,您可以改為提供包含所有方JSON案設定的檔案。

    注意

    JSON檔案中資料值的命名慣例遵循針對 Image Builder API 動作請求參數指定的模式。若要檢閱指API令請求參數,請參閱 EC2Image Builder 參API考中的CreateImageRecipe指令。

    若要將資料值提供為命令列參數,請參照 AWS CLI 指令參考

    以下是這些範例指定的參數摘要:

    • name (字串,必要) — 影像配方的名稱。

    • 描述(字符串)— 圖像配方的描述。

    • parentImage(字串,必要) — 影像配方用來做為自訂影像基礎的影像。該值可以是基本映像ARN或 AMI ID。

      注意

      Linux 範例使用 Image BuilderAMI,而視窗範例使用ARN.

    • semanticVersion(字串,必要) — 影像配方的語意版本,以下列格式表示,每個位置都有數值以表示特定版本:<major>。 <minor>。 <patch>。例如,一個值可能是1.0.0。若要進一步瞭解 Image Builder 資源的語意版本控制,請參閱Image Builder 中的語義版本

    • 元件 (陣列,必要) — 包含ComponentConfiguration物件陣列。至少必須指定一個組建元件:

      注意

      Image Builder 會依照您在方案中指定元件的順序來安裝元件。不過,CIS強化元件永遠會持續執行,以確保基準測試會針對您的輸出影像執行。

      • 組件 ARN(字符串,必需)-組件ARN。

        提示

        若要使用其中一個範例來建立您自己的映像方案,您必須將範例ARNs取代ARNs為您方案所使用的元件。

      • 參數 (物件陣列) — 包含ComponentParameter物件陣列。如果需要輸入參數,但未在組件中定義預設值,則必須提供值。如果缺少任何必要參數且未定義預設值,Image Builder 將不會建立配方版本。

        重要

        元件參數為純文字值,且已登入 AWS CloudTrail建議您使用 。 AWS Secrets Manager 或 AWS Systems Manager 參數存儲來存儲您的秘密。如需有關 Secrets Manager 的詳細資訊,請參閱什麼是 Secrets Manager?AWS Secrets Manager 使用者指南。如需關於 AWS Systems Manager 參數存放區,請參閱 AWS Systems Manager 參數存放區 AWS Systems Manager 使用者指南

        • name (字串,必要) — 要設定的元件參數名稱。

        • value (字串陣列,必要) — 包含用來設定具名元件參數值的字串陣列。如果為元件定義了預設值,且未提供其他值, AWS TOE 使用預設值。

    • additionalInstanceConfiguration(物件) — 指定組建執行個體的其他設定和啟動指令碼。

      • systemsManagerAgent(物件) — 包含組建執行個體上系統管理員代理程式的設定。

        • uninstallAfterBuild(布林值) — 控制系統管理員代理程式是否在建立新建置映像之前從最終組建映像中移除AMI。如果此選項設為true,則會從最終映像中移除代理程式。如果選項設定為false,則會保留代理程式,以便將其包含在新的中AMI。預設值為 false

          注意

          如果該uninstallAfterBuild屬性未包含在JSON檔案中,且符合下列條件,則 Image Builder 會從最終映像中移除 Systems Manager 代理程式,以便在中無法使用AMI:

          • userDataOverride為空或已從JSON檔案中省略。

          • Image Builder 會自動在組建執行個體上安裝系統管理員代理程式,而該作業系統並未在基本映像上預先安裝代理程式。

      • userDataOverride(字串) — 提供在啟動建置執行個體時要執行的命令或命令指令碼。

        注意

        使用者資料一律為 Base 64 編碼格式。例如,下列命令編碼為 IyEvYmluL2Jhc2gKbWtkaXIgLXAgL3Zhci9iYi8KdG91Y2ggL3Zhcg==

        #!/bin/bash mkdir -p /var/bb/ touch /var

        Linux 範例會使用此編碼值。

    Linux

    下列範例中的基本影像 (parentImage屬性) 為AMI. 當您使用時AMI,您必須擁有的存取權AMI,且AMI必須位於來源區域 (執行此命令的相同區域)。將檔案另存為create-image-recipe.json,並在create-image-recipe指令中使用它。

    { "name": "BB Ubuntu Image recipe", "description": "Hello World image recipe for Linux.", "parentImage": "ami-0a01b234c5de6fabc", "semanticVersion": "1.0.0", "components": [ { "componentArn": "arn:aws:imagebuilder:us-west-2:123456789012:component/bb$" } ], "additionalInstanceConfiguration": { "systemsManagerAgent": { "uninstallAfterBuild": true }, "userDataOverride": "IyEvYmluL2Jhc2gKbWtkaXIgLXAgL3Zhci9iYi8KdG91Y2ggL3Zhcg==" } }
    Windows

    下面的例子是指視窗服務器 2016 年英語完整基礎圖像的最新版本。ARN在此範例中,SKU根據您指定的語意版本篩選器參考中的最新影像:arn:aws:imagebuilder:us-west-2:aws:image/windows-server-2016-english-full-base-x86/x.x.x

    { "name": "MyBasicRecipe", "description": "This example image recipe creates a Windows 2016 image.", "parentImage": "arn:aws:imagebuilder:us-west-2:aws:image/windows-server-2016-english-full-base-x86/x.x.x", "semanticVersion": "1.0.0", "components": [ { "componentArn": "arn:aws:imagebuilder:us-west-2:123456789012:component/my-example-component/2019.12.02/1" }, { "componentArn": "arn:aws:imagebuilder:us-west-2:123456789012:component/my-imported-component/1.0.0/1" } ] }
    注意

    若要進一步瞭解 Image Builder 資源的語意版本控制,請參閱Image Builder 中的語義版本

  2. 建立食譜

    使用下列指令建立配方。在參數中提供您在上一個步驟中建立的JSON檔案名--cli-input-json稱:

    aws imagebuilder create-image-recipe --cli-input-json file://create-image-recipe.json
    注意
    • 您必須在JSON檔案路徑的開頭包含file://符號。

    • JSON檔案的路徑應遵循執行指令之基礎作業系統的適當慣例。例如,Windows 會使用反斜線 (\) 來參照目錄路徑,而 Linux 會使用正斜線 (/)。

在主控台中將虛擬機器匯入為基礎映像

在本節中,我們將重點介紹如何將虛擬機器 (VM) 匯入為映像方案的基礎映像。我們不涵蓋與創建食譜或配方版本相關的其他步驟。如需使用 Image Builder 主控台中的管線建立精靈建立新映像方案的其他步驟,請參閱主控台精靈:建立 AMI。如需建立新影像配方或配方版本的其他步驟,請參閱建立影像配方的新版本

若要將虛擬機器匯入為映像產生器主控台中映像配方的基本映像檔,請遵循下列步驟以及任何其他必要步驟來建立方案或方案版本。

  1. 在基本影像的「選取影像」區段中,選取「匯入基本影像」選項。

  2. 像平常一樣選擇映像操作系統(OS)和操作系統版本

VM 匯入組態

當您從虛擬化環境匯出 VM 時,該程序會建立一組或多個磁碟容器檔案,做為 VM 環境、設定和資料的快照集。您可以使用這些檔案將 VM 匯入為映像方案的基本映像檔。如需VMs在 Image Builder 中匯入的詳細資訊,請參閱〈匯入和匯出 VM 映像檔

若要指定匯入來源的位置,請依照下列步驟執行:

匯入來源

在 [磁碟容器 1] 區段中指定要匯入的第一個虛擬機器映像磁碟容器或快照的來源。

  1. 來源 — 這可以是 S3 儲存貯體或EBS快照。

  2. 選取磁碟 S3 位置 — 輸入 Amazon S3 中存放磁碟映像的位置。若要瀏覽位置,請選擇 [瀏覽 S3]。

  3. 若要新增磁碟容器,請選擇 [新增磁碟容器]。

IAM角色

若要建立IAM角色與虛擬機器匯入組態的關聯,請從角色下拉式清單中選取IAM角色,或選擇 [建立新角色] 以建立新角色。如果您建立新角色,[IAM角色] 主控台頁面會在單獨的索引標籤中開啟。

進階設定 — 選用

以下是可選的設定。使用這些設定,您可以為匯入建立的基礎映像配置加密、授權、標籤等。

一般
  1. 為基礎映像指定唯一的「名稱」。如果未輸入值,則基本影像會繼承配方名稱。

  2. 指定基映像的版本。使用下列格式:<major>.<minor>.<patch>。如果未輸入值,則基本影像會繼承配方版本。

  3. 您也可以輸入基本影像的「描述」。

基本映像架構

若要指定虛擬機器匯入來源的架構,請從架構清單中選取值。

加密

如果您的虛擬機器磁碟映像檔已加密,您必須提供用於匯入程序的金鑰。若要指定 AWS KMS key 對於匯入,從加密 (KMS金鑰) 清單中選取一個值。該列表包含您的帳戶在當前區域中可以訪問的KMS密鑰。

授權管理

匯入虛擬機器時,匯入程序會自動偵測虛擬機器作業系統,並將適當的授權套用至基礎映像。視您的作業系統平台而定,授權類型如下:

  • 包括許可證-適當 AWS 您平台的授權會套用至您的基礎映像。

  • 使用您自己的授權 (BYOL) — 保留來自虛擬機器的授權 (如果適用)。

附加使用建立的授權組態 AWS License Manager 至您的基本影像,從授權規劃名稱清單中選取。若要取得有關 License Manager 的更多資訊,請參閱〈 AWS License Manager

注意
  • 授權組態包含以企業合約條款為基礎的授權規則。

  • Linux 僅支援BYOL授權。

標籤 (基本影像)

標籤使用鍵值配對,將可搜尋的文字指派給您的 Image Builder 資源。若要為匯入的基本影像指定標籤,請在「鍵」和「值」方塊中輸入鍵配對。

若要新增標籤,請選擇 Add tag (新增標籤)。若要移除標籤,請選擇 Remove tag (移除標籤)