Red Hat Training
A Red Hat training course is available for RHEL 8
第 10 章 使用镜像构建器准备并上传云镜像
镜像构建器可以创建自定义系统镜像,以便在各种云平台上使用。要在云中使用自定义的 RHEL 系统镜像,请使用镜像构建器使用相应的输出类型创建系统镜像,配置您的系统以上传镜像,并将镜像上传到您的云帐户。您可以在 RHEL web 控制台中通过 image builder
应用程序将自定义镜像推送到云,作为我们支持的服务提供商的子集提供,如 AWS 和 Microsoft Azure 云。请参阅 将镜像推送到 AWS Cloud AMI 和 将 VHD 镜像推送到 Microsoft Azure 云。
10.1. 准备上传 AWS AMI 镜像
在上传 AWS AMI 镜像前,您必须配置系统来上传镜像。
先决条件
- 您必须在 AWS IAM account manager 中配置了一个 Access Key ID。
- 您必须具有一个可写的 S3 存储桶。
流程
安装 Python 3 和
pip
工具:# yum install python3 # yum 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 存储桶的权限,如果您还没有这样做,请在 AWS Identity and Access Management (IAM) 中创建一个
vmimport
S3 角色:$ 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