

# ワークロードに合わせて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>

デフォルトでは、サンプルイメージの説明には、Amazon Linux 2023 コアリポジトリのミラーエンドポイントを指す単一の `<repository>` 要素が含まれています。必要に応じて、必要なソフトウェアをインストールする他のリポジトリへの参照を追加できます。

サンプルイメージの説明では、`<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)」を参照してください。