3.4. Téléchargement de l'image Red Hat Enterprise Linux sur AWS
Suivez les procédures de cette section pour télécharger votre image sur AWS.
3.4.1. Installation de l'interface de programmation AWS
La plupart des procédures requises pour gérer les clusters HA dans AWS incluent l'utilisation de la CLI AWS. Suivez les étapes suivantes pour installer la CLI AWS.
Conditions préalables
- Vous avez créé un identifiant de clé d'accès AWS et une clé d'accès secrète AWS, et vous y avez accès. Pour obtenir des instructions et des détails, voir Configuration rapide de la CLI AWS.
Procédure
Installez les outils de ligne de commande AWS à l'aide de la commande
dnf
.# dnf install awscli
Utilisez la commande
aws --version
pour vérifier que vous avez installé la CLI AWS.$ aws --version aws-cli/1.19.77 Python/3.6.15 Linux/5.14.16-201.fc34.x86_64 botocore/1.20.77
Configurez le client de ligne de commande AWS en fonction de vos informations d'accès à AWS.
$ aws configure AWS Access Key ID [None]: AWS Secret Access Key [None]: Default region name [None]: Default output format [None]:
Ressources supplémentaires
3.4.2. Création d'un seau S3
L'importation vers AWS nécessite un bac Amazon S3. Un bac Amazon S3 est une ressource Amazon dans laquelle vous stockez des objets. Dans le cadre du processus de téléchargement de votre image, vous créez un bac S3 et déplacez ensuite votre image vers le bac. Effectuez les étapes suivantes pour créer un seau.
Procédure
- Lancez la console Amazon S3.
- Cliquez sur Create Bucket. La boîte de dialogue Create Bucket apparaît.
Dans la vue Name and region:
- Saisissez une adresse Bucket name.
- Saisissez une adresse Region.
- Cliquez sur Next.
- Dans la vue Configure options, sélectionnez les options souhaitées et cliquez sur Next.
- Dans la vue Set permissions, modifiez ou acceptez les options par défaut et cliquez sur Next.
- Examinez la configuration de votre seau.
Cliquez sur Create bucket.
NoteVous pouvez également utiliser l'interface de commande AWS pour créer un godet. Par exemple, la commande
aws s3 mb s3://my-new-bucket
crée un godet S3 nommémy-new-bucket
. Pour plus d'informations sur la commandemb
, reportez-vous à la référence des commandes de l'interface de commande AWS.
Ressources supplémentaires
3.4.3. Création du rôle vmimport
Effectuez la procédure suivante pour créer le rôle vmimport
, nécessaire à l'importation de VM. Pour plus d'informations, reportez-vous à la section Rôle du service d'importation de VM dans la documentation Amazon.
Procédure
Créez un fichier nommé
trust-policy.json
et incluez la politique suivante. Enregistrez le fichier sur votre système et notez son emplacement.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "vmie.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals":{ "sts:Externalid": "vmimport" } } } ] }
Utilisez la commande
create role
pour créer le rôlevmimport
. Indiquez le chemin d'accès complet à l'emplacement du fichiertrust-policy.json
. Attribuez le préfixefile://
au chemin d'accès. Par exemple :$ aws iam create-role --role-name vmimport --assume-role-policy-document file:///home/sample/ImportService/trust-policy.json
Créez un fichier nommé
role-policy.json
et incluez la politique suivante. Remplacezs3-bucket-name
par le nom de votre panier S3.{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket" ], "Resource":[ "arn:aws:s3:::s3-bucket-name", "arn:aws:s3:::s3-bucket-name/*" ] }, { "Effect":"Allow", "Action":[ "ec2:ModifySnapshotAttribute", "ec2:CopySnapshot", "ec2:RegisterImage", "ec2:Describe*" ], "Resource":"*" } ] }
Utilisez la commande
put-role-policy
pour attacher la politique au rôle que vous avez créé. Indiquez le chemin complet du fichierrole-policy.json
. Par exemple :$ aws iam put-role-policy --role-name vmimport --policy-name vmimport --policy-document file:///home/sample/ImportService/role-policy.json
Ressources supplémentaires
3.4.4. Conversion et transfert de l'image vers S3
Suivez la procédure suivante pour convertir et pousser votre image vers S3. Les exemples sont représentatifs ; ils convertissent une image au format qcow2
en format raw
. Amazon accepte les images aux formats OVA
, VHD
, VHDX
, VMDK
et raw
. Voir Comment fonctionne l'importation/exportation de VM pour plus d'informations sur les formats d'image acceptés par Amazon.
Procédure
Exécutez la commande
qemu-img
pour convertir votre image. Par exemple :# qemu-img convert -f qcow2 -O raw rhel-9.0-sample.qcow2 rhel-9.0-sample.raw
Pousser l'image vers S3.
$ aws s3 cp rhel-9.0-sample.raw s3://s3-bucket-name
NoteCette procédure peut prendre quelques minutes. Une fois la procédure terminée, vous pouvez vérifier que votre image a bien été téléchargée dans votre panier S3 à l'aide de la console AWS S3.
Ressources supplémentaires
3.4.5. Importation d'une image en tant qu'instantané
La procédure suivante permet d'importer une image en tant qu'instantané.
Procédure
Créez un fichier pour spécifier un répertoire et un chemin d'accès pour votre image. Nommez le fichier
containers.json
. Dans l'exemple qui suit, remplacezs3-bucket-name
par le nom de votre godet ets3-key
par votre clé. Vous pouvez obtenir la clé de l'image à l'aide de la console Amazon S3.{ "Description": "rhel-9.0-sample.raw", "Format": "raw", "UserBucket": { "S3Bucket": "s3-bucket-name", "S3Key": "s3-key" } }
Importez l'image en tant qu'instantané. Cet exemple utilise un fichier Amazon S3 public ; vous pouvez utiliser la console Amazon S3 pour modifier les paramètres d'autorisation de votre panier.
aws ec2 import-snapshot --disk-container file://containers.json
Le terminal affiche un message tel que le suivant. Notez le
ImportTaskID
dans le message.{ "SnapshotTaskDetail": { "Status": "active", "Format": "RAW", "DiskImageSize": 0.0, "UserBucket": { "S3Bucket": "s3-bucket-name", "S3Key": "rhel-9.0-sample.raw" }, "Progress": "3", "StatusMessage": "pending" }, "ImportTaskId": "import-snap-06cea01fa0f1166a8" }
Suivez la progression de l'importation à l'aide de la commande
describe-import-snapshot-tasks
. Inclure la commandeImportTaskID
.$ aws ec2 describe-import-snapshot-tasks --import-task-ids import-snap-06cea01fa0f1166a8
Le message renvoyé indique l'état actuel de la tâche. Lorsqu'elle est terminée,
Status
affichecompleted
. Dans l'état, notez l'ID de l'instantané.
Ressources supplémentaires
3.4.6. Création d'une AMI à partir de l'instantané téléchargé
Dans EC2, vous devez choisir une Amazon Machine Image (AMI) lorsque vous lancez une instance. Suivez la procédure suivante pour créer une AMI à partir de votre instantané téléchargé.
Procédure
- Accédez au tableau de bord AWS EC2.
- Sous Elastic Block Store, sélectionnez Snapshots.
-
Recherchez l'identifiant de votre instantané (par exemple,
snap-0e718930bd72bcda0
). - Cliquez avec le bouton droit de la souris sur l'instantané et sélectionnez Create image.
- Nommez votre image.
- Sous Virtualization type, choisissez Hardware-assisted virtualization.
- Cliquez sur Create. Dans la note concernant la création d'images, il y a un lien vers votre image.
Cliquez sur le lien de l'image. Votre image apparaît sous Images>AMIs.
NoteVous pouvez également utiliser la commande AWS CLI
register-image
pour créer une AMI à partir d'un instantané. Voir register-image pour plus d'informations. Voici un exemple.$ aws ec2 register-image \ --name "myimagename" --description "myimagedescription" --architecture x86_64 \ --virtualization-type hvm --root-device-name "/dev/sda1" --ena-support \ --block-device-mappings "{\"DeviceName\": \"/dev/sda1\",\"Ebs\": {\"SnapshotId\": \"snap-0ce7f009b69ab274d\"}}"
Vous devez spécifier le volume de périphérique racine
/dev/sda1
en tant queroot-device-name
. Pour obtenir des informations conceptuelles sur le mappage des périphériques pour AWS, voir Exemple de mappage des périphériques en bloc.
3.4.7. Lancement d'une instance à partir de l'AMI
Suivez la procédure suivante pour lancer et configurer une instance à partir de l'AMI.
Procédure
- Dans le tableau de bord AWS EC2, sélectionnez Images puis AMIs.
- Cliquez avec le bouton droit de la souris sur votre image et sélectionnez Launch.
Choisissez un site Instance Type qui répond ou dépasse les exigences de votre charge de travail.
Voir Amazon EC2 Instance Types pour plus d'informations sur les types d'instances.
Cliquez sur Next: Configure Instance Details.
- Saisissez l'adresse Number of instances que vous souhaitez créer.
- Pour Network, sélectionnez le VPC que vous avez créé lors de la configuration de votre environnement AWS. Sélectionnez un sous-réseau pour l'instance ou créez-en un nouveau.
Sélectionnez Enable pour Auto-assign Public IP.
NoteIl s'agit des options de configuration minimales nécessaires pour créer une instance de base. Examinez les options supplémentaires en fonction des exigences de votre application.
- Cliquez sur Next: Add Storage. Vérifiez que le stockage par défaut est suffisant.
Cliquez sur Next: Add Tags.
NoteLes balises peuvent vous aider à gérer vos ressources AWS. Pour plus d'informations sur les balises, consultez la section Baliser vos ressources Amazon EC2.
- Cliquez sur Next: Configure Security Group. Sélectionnez le groupe de sécurité que vous avez créé lors de la configuration de votre environnement AWS.
- Cliquez sur Review and Launch. Vérifiez vos sélections.
Cliquez sur Launch. Vous êtes invité à sélectionner une paire de clés existante ou à créer une nouvelle paire de clés. Sélectionnez la paire de clés que vous avez créée lors de la configuration de votre environnement AWS.
NoteVérifiez que les droits d'accès à votre clé privée sont corrects. Utilisez les options de la commande
chmod 400 <keyname>.pem
pour modifier les autorisations, si nécessaire.- Cliquez sur Launch Instances.
Cliquez sur View Instances. Vous pouvez nommer la ou les instances.
Vous pouvez maintenant lancer une session SSH vers votre/vos instance(s) en sélectionnant une instance et en cliquant sur Connect. Utilisez l'exemple fourni pour A standalone SSH client.
NoteVous pouvez également lancer une instance à l'aide de la CLI AWS. Pour plus d'informations, voir Lancer, lister et terminer les instances Amazon EC2 dans la documentation d'Amazon.
Ressources supplémentaires
3.4.8. Attacher des abonnements Red Hat
Pour attacher votre abonnement Red Hat à une instance RHEL, suivez les étapes suivantes.
Conditions préalables
- Vous devez avoir activé vos abonnements.
Procédure
Enregistrez votre système.
# subscription-manager register --auto-attach
Joignez vos abonnements.
- Vous pouvez utiliser une clé d'activation pour attacher des abonnements. Pour plus d'informations, reportez-vous à la section Créer des clés d'activation pour le portail client Red Hat.
- Vous pouvez également rattacher manuellement un abonnement à l'aide de l'ID du pool d'abonnements (Pool ID). Voir Attacher et supprimer des abonnements via la ligne de commande.
3.4.9. Configuration de l'enregistrement automatique sur AWS Gold Images
Pour accélérer et faciliter le déploiement des machines virtuelles RHEL 8 sur Amazon Web Services (AWS), vous pouvez configurer les images Gold de RHEL 8 pour qu'elles soient automatiquement enregistrées dans le gestionnaire d'abonnements Red Hat (RHSM).
Conditions préalables
Vous avez téléchargé la dernière Gold Image RHEL 8 pour AWS. Pour plus d'informations, voir Utilisation des Gold Images sur AWS.
NoteUn compte AWS ne peut être rattaché qu'à un seul compte Red Hat à la fois. Par conséquent, assurez-vous qu'aucun autre utilisateur n'a besoin d'accéder au compte AWS avant de l'attacher à votre compte Red Hat.
Procédure
- Téléchargez l'image Gold sur AWS. Pour obtenir des instructions, voir Téléchargement de l'image Red Hat Enterprise Linux vers AWS.
- Créez des machines virtuelles à l'aide de l'image téléchargée. Elles seront automatiquement abonnées au RHSM.
Vérification
Dans une VM RHEL 9 créée à l'aide des instructions ci-dessus, vérifiez que le système est enregistré dans le RHSM en exécutant la commande
subscription-manager identity
. Sur un système enregistré avec succès, cette commande affiche l'UUID du système. Par exemple :# subscription-manager identity system identity: fdc46662-c536-43fb-a18a-bbcb283102b7 name: 192.168.122.222 org name: 6340056 org ID: 6340056
Ressources supplémentaires