検索

3.4. bootc-image-builder を使用した AMI イメージの作成および AWS へのアップロード

download PDF

ブート可能なコンテナーイメージから Amazon Machine Image (AMI) を作成し、それを使用して Amazon Web Services EC2 (Amazon Elastic Compute Cloud) インスタンスを起動します。

前提条件

  • ホストマシンに Podman がインストールされている。
  • AWS アカウント内に既存の AWS S3 バケットがある。
  • bootc-image-builder ツールを実行し、コンテナーを --privileged モードで実行して、イメージをビルドするための root アクセスがある。
  • AMI を AWS アカウントにインポートするために、アカウントに vmimport サービスロールが設定されている。

手順

  1. ブート可能なコンテナーイメージからディスクイメージを作成します。

    • Containerfile でユーザーの詳細を設定します。必ず sudo アクセスを割り当ててください。
    • Containerfile で設定したユーザーを使用して、カスタマイズされたオペレーティングシステムイメージをビルドします。これにより、パスワードなしの sudo アクセスを持つデフォルトのユーザーが作成されます。
  2. オプション: cloud-init を使用してマシンイメージを設定します。cloud-init を使用したユーザーと SSH キーの注入 を参照してください。以下に例を示します。

    FROM registry.redhat.io/rhel9/rhel-bootc:9.4
    
    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 により、インスタンスメタデータを使用してユーザーや設定を追加することもできます。

  3. ブート可能なコンテナーイメージをビルドします。たとえば、イメージを x86_64 AWS マシンにデプロイするには、次のコマンドを使用します。

    $ podman build -t quay.io/<namespace>/<image>:<tag> .
    $ podman push quay.io/<namespace>/<image>:<tag> .
  4. bootc-image-builder ツールを使用して、bootc コンテナーイメージから AMI を作成します。

    $ sudo podman run \
      --rm \
      -it \
      --privileged \
      --pull=newer \
      -v $HOME/.aws:/root/.aws:ro \
      --env AWS_PROFILE=default \
      registry.redhat.io/rhel9/bootc-image-builder:latest \
      --type ami \
      --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 バケットにアップロードします。

次のステップ

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.