Menu Close
第8章 Image Builder を使用したクラウドイメージの準備およびアップロード
Image Builder を使用して、さまざまなプロバイダーのクラウドで使用できるようにカスタムのシステムイメージを作成できます。カスタマイズした RHEL システムイメージをクラウドで使用するには、各出力タイプを使用して Image Builder でシステムイメージを作成し、イメージをアップロードするようにシステムを設定し、クラウドアカウントへイメージをアップロードします。Red Hat Enterprise Linux 8.3 から、RHEL Web コンソールの Image Builder
アプリケーション経由でカスタマイズされたイメージクラウドをプッシュする機能は、AWS や Azure クラウドなどのサポート対象のサービスプロバイダーのサブセットで利用できます。AWS Cloud AMI へのイメージのプッシュ および Azure クラウドへの VHD イメージのプッシュ を参照してください。
8.1. AWS AMI イメージのアップロードの準備
ここでは、AWS AMI イメージをアップロードするようにシステムを設定する手順を説明します。
前提条件
- AWS IAM アカウントマネージャー にアクセスキー ID を設定している。
- 書き込み可能な S3 バケット を準備している。
手順
Python 3 および
pip
ツールをインストールします。# dnf install python3 # dnf install python3-pip
pip で
AWS コマンドラインツール
をインストールします。# pip3 install awscli
以下のコマンドを実行してプロファイルを設定します。ターミナルで、認証情報、リージョン、および出力形式を指定するように求められます。
$ aws configure AWS Access Key ID [None]: AWS Secret Access Key [None]: Default region name [None]: Default output format [None]:
バケット名を定義し、以下のコマンドを使用してバケットを作成します。
$ BUCKET=bucketname $ aws s3 mb s3://$BUCKET
bucketname は、バケット名に置き換えます。この名前は、グローバルで一意となるように指定する必要があります。上記で、バケットが作成されます。
次に、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