5.7. bootc-image-builder を使用した AMI イメージの作成および AWS へのアップロード
bootc イメージから Amazon Machine Image (AMI) を作成し、それを使用して Amazon Web Services (AWS) Amazon Elastic Compute Cloud (EC2) インスタンスを起動します。
前提条件
- ホストマシンに Podman がインストールされている。
-
AWS アカウント内に既存の
AWS S3バケットがある。 -
bootc-image-builderツールを実行し、コンテナーを--privilegedモードで実行して、イメージをビルドするための root アクセスがある。 -
AMI を AWS アカウントにインポートするために、アカウントに
vmimportサービスロールが設定されている。
手順
bootc イメージからディスクイメージを作成します。
- Containerfile でユーザーの詳細を設定します。必ず sudo アクセスを割り当ててください。
- Containerfile で設定したユーザーを使用して、カスタマイズされたオペレーティングシステムイメージをビルドします。これにより、パスワードなしの sudo アクセスを持つデフォルトのユーザーが作成されます。
オプション:
cloud-initを使用してマシンイメージを設定します。ユーザーとグループの設定 - cloud-init を使用したユーザーと SSH キーの挿入 を参照してください。以下に例を示します。FROM registry.redhat.io/rhel9/rhel-bootc:latest RUN dnf -y install cloud-init && \ ln -s ../cloud-init.target /usr/lib/systemd/system/default.target.wants && \ rm -rf /var/{cache,log} /var/lib/{dnf,rhsm}注記cloud-initにより、インスタンスメタデータを使用してユーザーや設定を追加することもできます。bootc イメージをビルドします。たとえば、イメージを
x86_64AWS マシンにデプロイするには、次のコマンドを使用します。$ podman build -t quay.io/<namespace>/<image>:<tag> . $ podman push quay.io/<namespace>/<image>:<tag> .コンテナーを実行する前に、
出力フォルダーを初期化してください。ディレクトリーがすでに存在する場合にコマンドが失敗しないようにするには、-p引数を使用してください。$ mkdir -p ./output-
bootc-image-builderツールを使用して、bootc コンテナーイメージから AMI を作成します。 bootc-image-builderツールを使用して、bootc コンテナーイメージからパブリックな AMI イメージを作成します。イメージは、registry.redhat.io/rhel9/bootc-image-builder:latest などのレジストリーからアクセスできる必要があります。$ podman run \ --rm \ -it \ --privileged \ --pull=newer \ -v $HOME/.aws:/root/.aws:ro \ -v /var/lib/containers/storage:/var/lib/containers/storage \ --env AWS_PROFILE=default \ registry.redhat.io/rhel9/bootc-image-builder:latest \ --type ami \ --config /config.toml \ --aws-ami-name rhel-bootc-x86 \ --aws-bucket rhel-bootc-bucket \ --aws-region us-east-1 \ quay.io/<namespace>/<image>:<tag>注記以下のフラグはすべてまとめて指定する必要があります。フラグを指定しない場合、AMI は出力ディレクトリーにエクスポートされます。
-
--aws-ami-name- AWS の AMI イメージの名前 -
--aws-bucket- AMI を作成する際の中間ストレージのターゲット S3 バケット名 --aws-region- AWS アップロードのターゲットリージョンbootc-image-builderツールは AMI イメージをビルドし、ビルド後に AWS 認証情報を使用して AMI イメージをプッシュおよび登録することで、AWS s3 バケットにアップロードします。bootc-image-builderツールは、AMI イメージをビルドし、ビルド後に AWS 認証情報を使用して AMI イメージをプッシュおよび登録することで、AWS S3 bucketにアップロードします。
-
次のステップ
- イメージをデプロイできます。AMI ディスクイメージを使用してコンテナーイメージを AWS にデプロイする方法については、AMI ディスクイメージを使用してコンテナーイメージをデプロイするを 参照してください。
イメージを更新し、変更をレジストリーにプッシュできます。RHEL bootc イメージの管理 を参照してください。
- AWS イメージの要件の設定に問題がある場合は、次のドキュメントを参照してください。
- AWS IAM account manager
- Using high-level (s3) commands with the AWS CLI
- S3 buckets
- Regions and Zones
- AWS 上でカスタマイズされた RHEL イメージを起動する。
- カスタマイズした RHEL イメージの AWS での起動
ユーザー、グループ、SSH キー、シークレットの詳細は、ユーザーとグループの設定 - cloud-init を使用したユーザーと SSH キーの挿入 を参照してください。