Chapitre 10. Préparation et téléchargement d'images de nuages à l'aide de l'outil de création d'images
Image builder permet de créer des images système personnalisées prêtes à être utilisées sur diverses plates-formes en nuage. Pour utiliser votre image système RHEL personnalisée dans un nuage, créez l'image système avec Image builder en utilisant le type de sortie correspondant, configurez votre système pour le téléchargement de l'image et téléchargez l'image sur votre compte de nuage. Vous pouvez pousser des nuages d'images personnalisées via l'application image builder
dans la console web RHEL, disponible pour un sous-ensemble de fournisseurs de services que nous prenons en charge, tels que les nuages AWS et Microsoft Azure. Voir Pushing images to AWS Cloud AMI et Pushing VHD images to Microsoft Azure cloud.
10.1. Préparation du téléchargement des images AWS AMI
Avant de télécharger une image AWS AMI, vous devez configurer un système pour télécharger les images.
Conditions préalables
- Vous devez avoir un ID de clé d'accès configuré dans le gestionnaire de compte AWS IAM.
- Vous devez avoir préparé un seau S3 accessible en écriture.
Procédure
Installez Python 3 et l'outil
pip
:# dnf install python3 # dnf install python3-pip
Installez les outils en ligne de commande AWS avec
pip
:# pip3 install awscli
Exécutez la commande suivante pour définir votre profil. Le terminal vous invite à fournir vos informations d'identification, votre région et le format de sortie :
$ aws configure AWS Access Key ID [None]: AWS Secret Access Key [None]: Default region name [None]: Default output format [None]:
Définissez un nom pour votre seau et utilisez la commande suivante pour créer un seau :
$ BUCKET=bucketname $ aws s3 mb s3://$BUCKET
Remplacez bucketname par le nom du seau. Il doit s'agir d'un nom unique au niveau mondial. Le résultat est la création d'un seau.
Pour autoriser l'accès au seau S3, créez un rôle S3
vmimport
dans le système de gestion des identités et des accès (IAM) d'AWS, si vous ne l'avez pas déjà fait par le passé :$ 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
Ressources supplémentaires