本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
教學課程:透過映像產生器主控台精靈建立具有輸出 Docker 容 Image Builder 的映像管線
本教學課程將逐步引導您建立自動化管道,以使用 [建立EC2映像管線主控台] 精靈來建置和維護自訂的 Image Builder Docker 映像。為了協助您有效率地完成這些步驟,當預設設定可用時,會使用預設設定,並略過可選區段。
步驟 1:指定管線詳細資訊
-
在開啟映 EC2 Image Builder 主控台https://console.aws.amazon.com/imagebuilder/
。 -
若要開始建立管線,請選擇 [建立映像管線]。
-
在「一般」區段中,輸入您的管線名稱 (必填)。
-
在 [建立排程] 區段中,您可以保留 [排程] 選項的預設值。請注意,預設排程所顯示的時區為世界協調時間 (UTC)。如需有關UTC時間的詳細資訊,並尋找您所在時區的偏移量,請參閱時區縮寫 — 全球清單
。 對於「相依性更新」設定,請選擇「如果有相依性更新,則在排程的時間執行管線」選項。此設定會讓您的管道在開始建置之前檢查是否有更新。如果沒有更新,則會略過排程的管線建置。
注意
若要確保管線如預期般辨識相依性更新和組建,您必須針對基礎映像和元件使用語意版本化 (x.x.x)。若要進一步瞭解 Image Builder 資源的語意版本控制,請參閱Image Builder 中的語義版本。
-
選擇 [下一步] 繼續進行下一個步驟。
步驟 2:選擇食譜
-
Image Builder 預設為「使用方案」區段中的現有方案。第一次使用時,請選擇「建立新配方」選項。
-
在 [映像類型] 區段中,選擇 Docker 映像選項以建立容器管道,以產生 Docker 映像並將其散佈到目標區ECR域中的 Amazon 儲存庫。
-
在「一般」區段中,輸入下列必要的方塊:
-
名稱 — 您的食譜名稱
-
版本-您的食譜版本(使用格式<major>。 <minor>。 <patch>,其中主要、次要和修補為整數值)。新食譜一般從開始
1.0.0
。
-
-
在 [來源映像檔] 區段中,保留 [選取映像檔]、[映像作業系統 (OS)] 和 [映像來源] 的預設值。這會產生由 Amazon 管理的 Amazon Linux 2 容器映像列表,供您從基本映像中選擇。
-
從 [影像名稱] 下拉式清單中,選擇影像。
-
保留自動版本控制選項的預設值 (使用最新的可用作業系統版本)。
注意
此設定可確保管線對基礎映像使用語意版本控制,以偵測自動排程工作的相依性更新。若要進一步瞭解 Image Builder 資源的語意版本控制,請參閱Image Builder 中的語義版本。
-
-
在 [元件] 區段中,您必須至少選擇一個組建元件。
在建置元件 — Amazon Linux 面板中,您可以瀏覽頁面上列出的元件。使用右上角的分頁控制項,瀏覽基本映像作業系統可用的其他元件。您也可以搜尋特定元件,或使用 [元件管理員] 建立您自己的組建元件。
在此教學課程中,請選擇使用最新安全性更新來更新 Linux 的元件,如下所示:
-
在面板頂端的搜尋列
update
中輸入文字,以篩選結果。 -
選取
update-linux
建置元件的核取方塊。 -
向下捲動,然後在「選取的元件」清單的右上角選擇「全部展開」。
-
保留版本控制選項的預設值 (使用最新可用的元件版本)。
注意
此設定可確保管線對所選元件使用語意版本化,以偵測自動排程工作的相依性更新。若要進一步瞭解 Image Builder 資源的語意版本控制,請參閱Image Builder 中的語義版本。
如果您選取了具有輸入參數的元件,您也會在此區域中看到參數。本教學課程不介紹參數。如需有關在元件中使用輸入參數,並在方法中設定這些參數的詳細資訊,請參閱教學課程:使用輸入參數建立自訂元件。
重新排序元件 (可選)
如果您已選擇要包含在映像中的多個元件,則可以使用 drag-and-drop 動作將它們重新排列為在建置程序期間執行的順序。
注意
CIS強化元件不遵循 Image Builder 方法中的標準元件排序規則。CIS強化元件一律會持續執行,以確保基準測試會針對您的輸出影像執行。
-
向上捲動至可用元件清單。
-
選取
update-linux-kernel-mainline
建置元件 (或您選擇的任何其他元件) 的核取方塊。 -
向下捲動至 [選取的元件] 清單,以查看至少有兩個結果。
-
新增的元件可能未展開其版本控制。若要展開「版本控制」選項,您可以選擇「版本控制」選項旁邊的箭頭,或者您可以將「全部展開」開關切換為關閉或開啟,以展開所有選取元件的版本控制。
-
選擇其中一個元件,然後向上或向下拖曳以變更元件的執行順序。
-
若要移除
update-linux-kernel-mainline
元件,請X
從元件方塊的右上角選擇。 -
重複上一個步驟,移除您可能已加入的任何其他元件,僅保留選取的
update-linux
元件。
-
-
在「Docker 檔案範本」區段中,選取「使用範例」選項。在「內容」面板中,請注意 Image Builder 根據容器映像方案放置組建資訊或指令碼的內容變數。
依預設,Image Builder 會在 Docker 檔案中使用下列上下文變數。
- parentImage (必填)
-
在建置階段,此變數會解析為方案的基礎映像檔。
範例:
FROM {{{ imagebuilder:parentImage }}}
- 環境 (如果已指定元件,則需要)
-
此變數將解析為執行元件的指令碼。
範例:
{{{ imagebuilder:environments }}}
- 組件(可選)
-
Image Builder 會針對容器配方所包含的元件,解析組建和測試元件指令碼。此變數可以放置在 Docker 檔案中的任何位置,位於環境變數之後。
範例:
{{{ imagebuilder:components }}}
-
在「目標儲存庫」區段中,指定您建立的 Amazon ECR 儲存庫名稱做為本教學的先決條件。此儲存庫可作為管線執行所在區域 (區域 1) 中發佈組態的預設設定。
注意
分發之前,所有目標區域的目標存放庫必須存在ECR於 Amazon 中。
-
選擇 [下一步] 繼續進行下一個步驟。
步驟 3:定義基礎結構組態-選用
Image Builder 會在帳戶中啟動EC2執行個體,以自訂映像檔並執行驗證測試。基礎結構組態設定會指定建置程序 AWS 帳戶 期間將在您的執行個體中執行的基礎結構詳細資料。
在 [基礎結構組態] 區段中,[組態] 選項預設為Create infrastructure
configuration using service defaults
。這會建立IAM角色和關聯的執行個體設定檔,建置執行個體會使用這些設定檔來設定容器映像檔。您也可以建立自己的自訂基礎結構組態,或使用已建立的設定。如需有關基礎結構組態設定的詳細資訊,請參閱 EC2Image Builder API 參考CreateInfrastructureConfiguration中的。
在本教程中,我們使用的是默認設置。
-
選擇 [下一步] 繼續進行下一個步驟。
步驟 4:定義發佈設定-選擇性
分發設定由目標區域和目標 Amazon ECR 儲存庫名稱組成。輸出 Docker 映像檔會部署到每個區域中指定的 Amazon ECR 儲存庫。
在 [發佈設定] 區段中,[組態] 選項預設為Create distribution settings using service
defaults
。此選項會將輸出 Docker 映像分發到管道執行所在區域 (區域 1) 的容器配方中指定的 Amazon ECR 儲存庫。如果您選擇Create new distribution settings
,您可以覆寫目前「區域」的ECR儲存庫,並新增更多「區域」以進行分配。
在本教程中,我們使用的是默認設置。
-
選擇 [下一步] 繼續進行下一個步驟。
步驟 5:檢視
「複查」區段會顯示您已設定的所有設定。若要編輯任何指定區段中的資訊,請選擇步驟區段右上角的 「編輯」按鈕。例如,如果您要變更管線名稱,請選擇「步驟 1:管線詳細資訊」區段右上角的 「編輯」按鈕。
-
檢閱設定後,請選擇「建立管道」以建立管道。
-
您可以在頁面頂端看到成功或失敗訊息,因為您的資源是針對發佈設定、基礎結構組態、新方案和管道建立的。若要查看資源的詳細資訊 (包括資源識別碼),請選擇 [檢視詳細資料]。
-
檢視資源的詳細資料之後,您可以從導覽窗格中選擇資源類型,以檢視其他資源的詳細資訊。例如,若要查看新管道的詳細資訊,請從導覽窗格中選擇「影像管線」。如果建置成功,則新管線會顯示在「影像管線」清單中。
步驟 6:清除
您的 Image Builder 環境就像您的住家一樣,需要定期維護以協助您找到所需的內容,並完成工作,而不必涉及雜亂。請務必定期清理您為測試而建立的暫存資源。否則,您可能會忘記這些資源,然後,不記得它們用於什麼。到那時,如果您可以安全地擺脫它們,可能還不清楚。
提示
若要避免刪除資源時發生相依性錯誤,請務必依下列順序刪除資源:
-
影像管線
-
圖片食譜
-
所有剩餘資源
若要清理您為此教學課程建立的資源,請依照下列步驟執行:
刪除配管
-
若要查看在您的帳戶下建立的建置管線清單,請從導覽窗格中選擇 [映像管線]。
-
選取「配管名稱」(Pipeline name) 旁的核取方塊,以選取要刪除的配管。
-
在「影像管線」面板頂端的「動作」功能表上,選擇「刪除」。
-
若要確認刪除,請
Delete
在方塊中輸入,然後選擇刪除。
刪除容器配方
-
若要查看您帳戶下建立的容器配方清單,請從功能窗格中選擇 [容器配方]。
-
選取 [配方名稱] 旁的核取方塊,以選取您要刪除的食譜。
-
在「容器配方」面板頂端的「動作」功能表上,選擇「刪除方案」。
-
若要確認刪除,請
Delete
在方塊中輸入,然後選擇刪除。
刪除基礎結構組
-
若要查看在您帳戶下建立的基礎結構組態清單,請從導覽窗格中選擇 [基礎結構設定]。
-
選取 [組態名稱] 旁的核取方塊,以選取您要刪除的基礎結構組態。
-
在「基礎結構設定」面板頂端,選擇「刪除」。
-
若要確認刪除,請
Delete
在方塊中輸入,然後選擇刪除。
刪除散佈設定
-
若要查看在您的帳戶下建立的發佈設定清單,請從功能窗格中選擇 [發佈設定]。
-
選取「組態名稱」旁邊的核取方塊,以選取您為此教學課程建立的散佈設定。
-
在「分佈」設定面板頂端,選擇「刪除」。
-
若要確認刪除,請
Delete
在方塊中輸入,然後選擇刪除。
刪除圖像
請遵循下列步驟來確認您已刪除從教學課程管線建立的任何影像。本教學課程不太可能建立映像檔,除非您根據建置排程建立管線以來已經過足夠的時間。
-
若要查看在您帳戶下建立的影像清單,請從導覽窗格中選擇 [圖片]。
-
為您要移除的影像選擇映像版本。這會開啟 [映像組建版本] 頁面。
-
針對您要刪除的任何映像,選取 [版本] 旁邊的核取方塊。您可以一次選取多個映像版本。
-
在「影像建置版本」面板頂端,選擇「刪除版本」。
-
若要確認刪除,請
Delete
在方塊中輸入,然後選擇刪除。