

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

# 針對您的工作負載，自訂範例 Amazon Linux 2023 映像說明
<a name="customize-sample-ami"></a>

您可自訂範例 Amazon Linux 2023 映像說明，以及包括您的特定工作負載所需的軟體套件、指令碼，以及檔案。在 KIWI NG 映像說明中新增或修改各種元素，藉此來實現自訂。

**Topics**
+ [儲存庫管理](#prepare-custom-image-repos)
+ [套件管理](#customize-sample-ami-packages)
+ [新增檔案及目錄](#customize-sample-ami-overlay)
+ [新增自訂指令碼](#customize-sample-ami-script)

## 儲存庫管理
<a name="prepare-custom-image-repos"></a>

範例映像說明預設會包括單一 `<repository>` 元素，其會指向適用於 Amazon Linux 2023 核心儲存庫的鏡像端點。您可視需要新增參考至其他儲存庫，以便從中安裝您的必要軟體。

範例映像說明使用如 `<packagemanager>` 元素中所定義的 `dnf` 套件管理員。

若要了解新增儲存庫的相關詳細資訊，請參閱[設定儲存庫](https://osinside.github.io/kiwi/concept_and_workflow/repository_setup.html)。

## 套件管理
<a name="customize-sample-ami-packages"></a>

範例映像說明預設會包括所需的一切套件，用於針對包含 `erofs` 唯讀檔案系統的隔離式運算環境來建立 Amazon Linux 2023 可驗證的 AMI。

您可新增額外的軟體套件至映像說明中的 `<packages>` 元素，藉此在映像說明中加入這些額外的軟體套件。`<packages>` 元素可定義應安裝至 AMI 的全部軟體。

您亦可使用 `<packages>` 元素，來解除安裝或刪除特定軟體套件。

若要了解在映像說明中新增或移除套件的相關詳細資訊，請參閱[新增及移除套件](https://osinside.github.io/kiwi/concept_and_workflow/packages.html#)。

## 新增檔案及目錄
<a name="customize-sample-ami-overlay"></a>

範例映像說明包括堆疊式樹狀目錄 (`/root/`)。堆疊式樹狀目錄是一個包含檔案與目錄的目錄，這些檔案與目錄會在映像建置程序期間複製到映像中。您在堆疊式樹狀目錄中置放的任何檔案及目錄，都會在映像建置程序期間直接複製到映像的根檔案系統。

安裝全部套件之後，堆疊式樹狀目錄即會複製到映像中。檔案即可新增，且會覆寫現有檔案。

## 新增自訂指令碼
<a name="customize-sample-ami-script"></a>

範例映像說明包括單一自訂指令碼 `edit_boot_install.sh`。此指令碼包括執行 `nitro-tpm-pcr-compute` 公用程式所需的命令，這些命令可依據映像內容生成參考衡量項。安裝啟動載入程式之後，即可呼叫此指令碼。

您可視需要在映像說明中加入您自己的自訂指令碼，以便在映像建置程序期間或首次啟動映像時執行任務或組態。使用指令碼，您能夠以單獨使用映像說明無法實現的方式來自訂您的映像。

如需在您的映像說明中加入自訂指令碼，您需要依據指令碼類型來對指令碼正確命名，然後將其新增至與 `appliance.kiwi` 檔案相同的目錄。若對指令碼正確命名且置於正確位置，KIWI NG 無需在映像說明檔案中明確參考這些指令碼，即可自動偵測及執行指令碼。

若要了解 KIWI NG 支援的指令碼相關詳細資訊，請參閱[使用者定義的指令碼](https://osinside.github.io/kiwi/concept_and_workflow/shell_scripts.html)。