6.5. Preparación y carga de imágenes en la nube con Image Builder
Image Builder puede crear imágenes de sistema personalizadas listas para ser utilizadas en nubes de varios proveedores. Para utilizar su imagen personalizada del sistema RHEL en una nube, cree la imagen del sistema con Image Builder utilizando el tipo de salida respectivo, configure su sistema para subir la imagen y suba la imagen a su cuenta de nube. A partir de Red Hat Enterprise Linux 8.3, la capacidad de empujar imágenes personalizadas a las nubes a través de la aplicación Image Builder en la consola web de RHEL está disponible para un subconjunto de los proveedores de servicios que soportamos, como las nubes AWS y Azure. Ver Pushing images to AWS Cloud AMI y Pushing VHD imaged to Azure cloud.
6.5.1. Preparación para la carga de imágenes AWS AMI Copiar enlaceEnlace copiado en el portapapeles!
Esto describe los pasos para configurar un sistema para cargar imágenes de AWS AMI.
Requisitos previos
- Debe tener un ID de clave de acceso configurado en el administrador de cuentas de AWS IAM.
- Debes tener preparado un bucket S3 con capacidad de escritura.
Procedimiento
Instale Python 3 y la herramienta
pip:# yum install python3 # yum install python3-pipInstale las herramientas de línea de comandos de AWS con
pip:# pip3 install awscliEjecute el siguiente comando para configurar su perfil. El terminal le pide que proporcione sus credenciales, la región y el formato de salida:
$ aws configure AWS Access Key ID [None]: AWS Secret Access Key [None]: Default region name [None]: Default output format [None]:Defina un nombre para su cubo y utilice el siguiente comando para crear un cubo:
$ BUCKET=bucketname $ aws s3 mb s3://$BUCKETSustituya bucketname por el nombre real del cubo. Debe ser un nombre único a nivel mundial. Como resultado, su cubo se ha creado.
A continuación, para conceder el permiso de acceso al cubo de S3, cree una función de S3
vmimporten IAM, si no lo ha hecho ya en el pasado:$ 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