Menu Close

第8章 Image Builder を使用したクラウドイメージの準備およびアップロード

Image Builder を使用して、さまざまなプロバイダーのクラウドで使用できるようにカスタムのシステムイメージを作成できます。カスタマイズした RHEL システムイメージをクラウドで使用するには、各出力タイプを使用して Image Builder でシステムイメージを作成し、イメージをアップロードするようにシステムを設定し、クラウドアカウントへイメージをアップロードします。Red Hat Enterprise Linux 8.3 から、RHEL Web コンソールの Image Builder アプリケーション経由でカスタマイズされたイメージクラウドをプッシュする機能は、AWSAzure クラウドなどのサポート対象のサービスプロバイダーのサブセットで利用できます。AWS Cloud AMI へのイメージのプッシュ および Azure クラウドへの VHD イメージのプッシュ を参照してください。

8.1. AWS AMI イメージのアップロードの準備

ここでは、AWS AMI イメージをアップロードするようにシステムを設定する手順を説明します。

前提条件

手順

  1. Python 3 および pip ツールをインストールします。

    # dnf install python3
    # dnf install python3-pip
  2. pipAWS コマンドラインツール をインストールします。

    # pip3 install awscli
  3. 以下のコマンドを実行してプロファイルを設定します。ターミナルで、認証情報、リージョン、および出力形式を指定するように求められます。

    $ aws configure
    AWS Access Key ID [None]:
    AWS Secret Access Key [None]:
    Default region name [None]:
    Default output format [None]:
  4. バケット名を定義し、以下のコマンドを使用してバケットを作成します。

    $ BUCKET=bucketname
    $ aws s3 mb s3://$BUCKET

    bucketname は、バケット名に置き換えます。この名前は、グローバルで一意となるように指定する必要があります。上記で、バケットが作成されます。

  5. 次に、S3 バケットへのアクセス権限を付与するには、IAM に vmimport S3 Role を作成していない場合には作成します。

    $ printf '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "vmie.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals":{ "sts:Externalid": "vmimport" } } } ] }' > trust-policy.json
    $ printf '{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket" ], "Resource":[ "arn:aws:s3:::%s", "arn:aws:s3:::%s/*" ] }, { "Effect":"Allow", "Action":[ "ec2:ModifySnapshotAttribute", "ec2:CopySnapshot", "ec2:RegisterImage", "ec2:Describe*" ], "Resource":"*" } ] }' $BUCKET $BUCKET > role-policy.json
    $ aws iam create-role --role-name vmimport --assume-role-policy-document file://trust-policy.json
    $ aws iam put-role-policy --role-name vmimport --policy-name vmimport --policy-document file://role-policy.json