Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
AWSSupport-MigrateXenToNitroLinux
Description
Le AWSSupport-MigrateXenToNitroLinux
runbook clone, prépare et migre une instance Linux Xen Amazon Elastic Compute Cloud (Amazon EC2) vers un type d'instance. Nitro Ce runbook propose deux options pour les types d'opérations :
-
Clone&Migrate
— Le flux de travail de cette option comprend les vérifications préliminaires, les tests et les Clone&Migratephases. Le flux de travail est exécuté à l'aide duAWSSupport-CloneXenEC2InstanceAndMigrateToNitro
runbook. -
FullMigration
— Cette option exécute leClone&Migrate
flux de travail, puis exécute l'étape supplémentaire consistant à remplacer les volumes Amazon EBS racines.
Important
L'utilisation de ce runbook entraîne des coûts pour votre compte liés à la durée d'exécution des instances Amazon EC2, à la création de volumes Amazon Elastic Block Store (Amazon EBS) et. AMIs Pour en savoir plus, consultez les tarifs Amazon EC2
Contrôles préliminaires
L'automatisation effectue les vérifications préliminaires suivantes avant de poursuivre la migration. Si l'une des vérifications échoue, l'automatisation prend fin. Cette phase ne représente qu'une partie du Clone&Migrate
flux de travail.
-
Vérifie si l'instance cible est déjà un type d'Nitroinstance.
-
Vérifie si l'option d'achat d'instances Spot a été utilisée pour l'instance cible.
-
Vérifie si les volumes de stockage d'instance sont attachés à l'instance cible.
-
Vérifie que le système d'exploitation (SE) de l'instance cible est Linux.
-
Vérifie si l'instance cible fait partie d'un groupe Amazon EC2 Auto Scaling. Si elle fait partie d'un groupe Auto Scaling, l'automatisation vérifie que l'instance est dans l'
standby
état. -
Vérifie que l'instance est gérée parAWS Systems Manager.
Test
L'automatisation crée un Amazon Machine Image (AMI) à partir de l'instance cible et lance une instance de test à partir de l'instance nouvellement crééeAMI. Cette phase fait uniquement partie du Clone&Migrate
flux de travail.
Si l'instance de test passe avec succès tous les contrôles d'état, l'automatisation s'interrompt et l'approbation des responsables désignés est demandée via la notification Amazon Simple Notification Service (Amazon SNS). Si l'approbation est fournie, l'automatisation met fin à l'instance de test, arrête l'instance cible et poursuit la migration, tandis que l'instance nouvellement créée AMI est désenregistrée à la fin du flux de travail. Clone&Migrate
Note
Avant de donner votre approbation, nous vous recommandons de vérifier que toutes les applications exécutées sur l'instance cible ont été fermées correctement.
Cloner et migrer
L'automatisation en crée une autre AMI à partir de l'instance cible et lance une nouvelle instance pour passer à un type d'Nitroinstance. L'automatisation remplit les conditions préalables suivantes avant de poursuivre la migration. Si l'une des vérifications échoue, l'automatisation prend fin. Cette phase ne représente également qu'une partie du Clone&Migrate
flux de travail.
-
Active l'attribut Enhanced Networking (ENA).
-
Installe la dernière version des pilotes ENA s'ils ne sont pas déjà installés, ou met à jour la version des pilotes ENA vers la dernière version. Pour garantir des performances réseau optimales, la mise à jour vers la dernière version du pilote ENA est requise si le type d'Nitroinstance est de 6e génération.
-
Vérifie que le module NVMe est installé. Si le module est installé, l'automatisation vérifie que le module est chargé.
initramfs
-
Analyse
/etc/fstab
et remplace les entrées par des noms de blocs d'appareils (/dev/sd*
ou/dev/xvd*
) par leurs UUID respectifs. Avant de modifier la configuration, l'automatisation crée une sauvegarde du fichier au niveau du chemin/etc/fstab*
. -
Désactive la dénomination prévisible des interfaces en ajoutant l'
net.ifnames=0
option à laGRUB_CMDLINE_LINUX
ligne du/etc/default/grub
fichier si elle existe, ou au noyau dans/boot/grub/menu.lst
. -
Supprime le
/etc/udev/rules.d/70-persistent-net.rules
fichier s'il existe. Avant de supprimer le fichier, l'automatisation crée une sauvegarde du fichier au niveau du chemin/etc/udev/rules.d/
.
Après avoir vérifié toutes les exigences, le type d'instance est remplacé Nitro par le type d'instance que vous avez spécifié. L'automatisation attend que l'instance nouvellement créée passe tous les contrôles d'état après avoir démarré en tant que type d'Nitroinstance. L'automatisation attend ensuite l'approbation des responsables désignés pour créer l'une AMI des instances lancées Nitro avec succès. Si l'approbation est refusée, l'automatisation prend fin, laissant l'instance nouvellement créée s'exécuter, et l'instance cible reste arrêtée.
Remplacer le volume Amazon EBS racine
Si vous choisissez FullMigration
l'optionOperationType
, l'automatisation fait migrer l'instance Amazon EC2 cible vers le type d'Nitroinstance que vous spécifiez. Automation demande l'approbation des responsables désignés pour remplacer le volume racine Amazon EBS de l'instance Amazon EC2 cible par le volume racine de l'instance Amazon EC2 clonée. Une fois la migration réussie, l'instance Amazon EC2 clonée est arrêtée. Si l'automatisation échoue, le volume racine Amazon EBS d'origine est attaché à l'instance Amazon EC2 cible. Si le volume Amazon EBS racine attaché à l'instance Amazon EC2 cible comporte des balises auxquelles le aws:
préfixe est appliqué, l'FullMigration
opération n'est pas prise en charge.
Avant de commencer
L'instance cible doit disposer d'un accès Internet sortant. Cela permet d'accéder à des référentiels pour les pilotes et les dépendances tels que kernel-develgcc,patch,rpm-build,wget,, dracut makelinux-headers, et. unzip Le gestionnaire de packages est utilisé si nécessaire.
Une rubrique Amazon SNS est requise pour envoyer des notifications concernant les approbations et les mises à jour. Pour plus d'informations sur la création d'une rubrique Amazon SNS, consultez la section Création d'une rubrique Amazon SNS dans le Guide du développeur Amazon Simple Notification Service.
Ce runbook prend en charge les systèmes d'exploitation suivants :
-
RHEL7x - 8,5
-
Amazon Linux (03/2018), Amazon Linux 2
-
Debian Server
-
Ubuntu Server 18.04 LTS, 20.04 LTS et 20.10 STR
-
SUSE Linux Enterprise Server(SUSE 12 SP5, SUSE 15 SP2)
Exécutez cette automatisation (console)
Type de document
Automatisation
Propriétaire
Amazon
Plateformes
Linux
Paramètres
-
AutomationAssumeRole
Type : String
Description : (Facultatif) Le nom de ressource Amazon (ARN) du rôle AWS Identity and Access Management (IAM) qui permet à Systems Manager Automation d'effectuer les actions en votre nom. Si aucun rôle n'est spécifié, Systems Manager Automation utilise les autorisations de l'utilisateur qui démarre ce runbook.
-
Reconnaissance
Type : String
Description : (Obligatoire) Lisez les détails complets des actions effectuées par ce runbook d'automatisation, puis saisissez-les
Yes, I understand and acknowledge
pour continuer à utiliser le runbook. -
Approuver IAM
Type : String
Description : (Obligatoire) Les ARN des rôles, des utilisateurs ou des noms d'utilisateur IAM qui peuvent fournir des approbations à l'automatisation. Vous pouvez spécifier un maximum de 10 approbateurs.
-
DeleteResourcesOnFailure
Type : booléen
Description : (Facultatif) Détermine si l'instance nouvellement créée et AMI destinée à la migration sont supprimées en cas d'échec de l'automatisation.
Valeurs valides : Vrai | Faux
Par défaut : VRAI
-
MinimumRequiredApprovals
Type : String
Description : (Facultatif) Nombre minimum d'approbations requises pour continuer à exécuter l'automatisation lorsque des approbations sont demandées.
Valeurs valides : 1-10
Par défaut: 1
-
NitroInstanceType
Type : String
Description : (Obligatoire) Le type d'Nitroinstance que vous souhaitez remplacer par l'instance. Les types d'instances pris en charge incluent M5, M6, C5, C6, R5, R6 et T3.
Par défaut : m5.xlarge
-
OperationType
Type : String
Description : (Obligatoire) L'opération que vous souhaitez effectuer. L'
FullMigration
option exécute les mêmes tâches que le volume racine de votre instance cibleClone&Migrate
et le remplace en outre. Le volume racine de l'instance cible est remplacé par le volume racine de l'instance nouvellement créée à la suite du processus de migration. L'FullMigration
opération ne prend pas en charge les volumes racines définis par Logical Volume Manager (LVM).Valeurs valides : Clone&Migrate | FullMigration
-
SNS TopicArn
Type : String
Description : (Obligatoire) L'ARN de la rubrique Amazon SNS pour la notification d'approbation. La rubrique Amazon SNS est utilisée pour envoyer les notifications d'approbation requises lors de l'automatisation.
-
TargetInstanceId
Type : String
Description : (Obligatoire) L'ID des instances Amazon EC2 à migrer.
Autorisations IAM requises
Le AutomationAssumeRole
paramètre nécessite les actions suivantes pour utiliser correctement le runbook.
-
ssm:DescribeAutomationExecutions
-
ssm:StartAutomationExecution
-
ssm:DescribeInstanceInformation
-
ssm:DescribeAutomationStepExecutions
-
ssm:SendCommand
-
ssm:GetAutomationExecution
-
ssm:ListCommands
-
ssm:ListCommandInvocations
-
ec2:DescribeInstances
-
ec2:DescribeInstanceTypeOfferings
-
ec2:DescribeInstanceTypes
-
ec2:DescribeImages
-
ec2:CreateImage
-
ec2:RunInstances
-
ec2:DescribeInstanceStatus
-
ec2:DeregisterImage
-
ec2:DeleteSnapshot
-
ec2:TerminateInstances
-
ec2:StartInstances
-
ec2:DescribeKeyPairs
-
ec2:StopInstances
-
kms:CreateGrant*
-
kms:ReEncrypt
-
ec2:ModifyInstanceAttribute
-
autoscaling:DescribeAutoScalingInstances
-
iam:passRole
-
iam:ListRoles
Étapes de document
-
startOfPreliminaryChecksBranch
- Branches vers le flux de travail des contrôles préliminaires. -
getTargetInstanceProperties
- Recueille les détails de l'instance cible. -
checkIfNitroInstanceTypeIsSupportedInAZ
- Détermine si le type d'instance Amazon EC2 cible est pris en charge dans la même zone de disponibilité que l'instance cible. -
getXenInstanceTypeDetails
- Recueille des informations sur le type d'instance source. -
checkIfInstanceHypervisorIsNitroAlready
- Vérifie si l'instance cible est déjà en cours d'exécution en tant que type d'Nitroinstance. -
checkIfTargetInstanceLifecycleIsSpot
- Vérifie si l'option d'achat de l'instance cible est Spot. -
checkIfOperatingSystemIsLinux
- Vérifie si le système d'exploitation de l'instance cible est Linux. -
verifySSMConnectivityForTargetInstance
- Vérifie que l'instance cible est gérée par Systems Manager. -
checkIfEphemeralVolumeAreSupported
- Vérifie si le type d'instance actuel de l'instance cible prend en charge les volumes de stockage d'instance. -
verifyIfTargetInstanceHasEphemeralVolumesAttached
- Vérifie si des volumes de stockage d'instance sont attachés à l'instance cible. -
checkIfRootVolumeIsEBS
- Vérifie si le type de volume racine de l'instance cible est EBS. -
checkIfTargetInstanceIsInASG
- Vérifie si l'instance cible fait partie d'un groupe Auto Scaling. -
endOfPreliminaryChecksBranch
- Fin de la branche des contrôles préliminaires. -
startOfTestBranch
- Branches vers le flux de travail de test. -
createTestImage
- Crée un test AMI de l'instance cible. -
launchTestInstanceInSameSubnet
- Lance une instance de test à partir du test AMI en utilisant la même configuration que l'instance cible. -
cleanupTestInstance
- Met fin à l'instance de test. -
endOfTestBranch
- Fin de la branche Testing. -
checkIfTestingBranchSucceeded
- Vérifie l'état de la branche Testing. -
approvalToStopTargetInstance
- Attend l'approbation des responsables désignés pour arrêter l'instance cible. -
stopTargetEC2Instance
- Arrête l'instance cible. -
forceStopTargetEC2Instance
- Force arrête l'instance cible uniquement si l'étape précédente ne parvient pas à arrêter l'instance. -
startOfCloneAndMigrateBranch
- Branches vers le Clone&Migrate flux de travail. -
createBackupImage
- Crée une instance AMI de l'instance cible pour servir de sauvegarde. -
launchInstanceInSameSubnet
- Lance une nouvelle instance à partir de la sauvegarde AMI en utilisant la même configuration que l'instance source. -
waitForClonedInstanceToPassStatusChecks
- Attend que l'instance nouvellement créée passe tous les contrôles de statut. -
verifySSMConnectivityForClonedInstance
- Vérifie que l'instance nouvellement créée est gérée par Systems Manager. -
checkAndInstallENADrivers
- Vérifie si les pilotes ENA sont installés sur l'instance nouvellement créée et les installe si nécessaire. -
checkAndAddNVMEDrivers
- Vérifie si les pilotes NVMe sont installés sur l'instance nouvellement créée et installe les pilotes si nécessaire. -
checkAndModifyFSTABEntries
- Vérifie si des noms d'appareils sont utilisés/etc/fstab
et les remplace par des UUID si nécessaire. -
stopClonedInstance
- Arrête l'instance nouvellement créée. -
forceStopClonedInstance
- Force arrête l'instance nouvellement créée uniquement si l'étape précédente ne parvient pas à arrêter l'instance. -
checkENAAttributeForClonedInstance
- Vérifie si l'attribut réseau amélioré est activé pour l'instance nouvellement créée. -
setNitroInstanceTypeForClonedInstance
- Remplace le type d'instance de l'instance nouvellement créée par le type d'Nitroinstance que vous avez spécifié. -
startClonedInstance
- Démarre l'instance nouvellement créée dont vous avez modifié le type d'instance. -
approvalForCreatingImageAfterDriversInstallation
- Si l'instance démarre correctement en tant que type d'Nitroinstance, l'automatisation attend l'approbation des responsables requis. Si l'approbation est fournie, un AMI est créé pour être utilisé comme un GoldenAMI. -
createImageAfterDriversInstallation
- Crée un objet AMI à utiliser comme un GoldenAMI. -
endOfCloneAndMigrateBranch
- Extrémité de Clone&Migrate la branche. -
cleanupTestImage
- Désenregistre le fichier AMI créé pour les tests. -
failureHandling
- Vérifie si vous avez choisi de mettre fin à des ressources en cas de défaillance. -
onFailureTerminateClonedInstance
- Met fin à l'instance nouvellement créée en cas d'échec de l'automatisation. -
onFailurecleanupTestImage
- Désenregistre le fichier AMI créé pour les tests. -
onFailureApprovalToStartTargetInstance
- Si l'automatisation échoue, attend l'approbation des responsables désignés pour démarrer l'instance cible. -
onFailureStartTargetInstance
- Si l'automatisation échoue, démarre l'instance cible.
Autorisations IAM requises
Le AutomationAssumeRole
paramètre nécessite les actions suivantes pour utiliser correctement le runbook.
-
ssm:DescribeAutomationExecutions
-
ssm:DescribeInstanceInformation
-
ssm:DescribeAutomationStepExecutions
-
ssm:SendCommand
-
ssm:GetAutomationExecution
-
ssm:ListCommands
-
ssm:ListCommandInvocations
-
ec2:DescribeInstances
-
ec2:DescribeInstanceTypeOfferings
-
ec2:DescribeInstanceTypes
-
ec2:DescribeImages
-
ec2:CreateImage
-
ec2:RunInstances
-
ec2:DescribeInstanceStatus
-
ec2:DeregisterImage
-
ec2:DeleteSnapshot
-
ec2:TerminateInstances
-
ec2:StartInstances
-
ec2:DescribeKeyPairs
-
ec2:StopInstances
-
kms:CreateGrant*
-
kms:ReEncrypt
-
ec2:ModifyInstanceAttribute
-
ec2:DetachVolume
-
ec2:AttachVolume
-
ec2:DescribeVolumes
-
autoscaling:DescribeAutoScalingInstances
-
iam:PassRole
-
ec2:CreateTags
-
cloudformation:DescribeStackResources
Étapes de document
Le FullMigration
flux de travail exécute les mêmes étapes que le Clone&Migrate
flux de travail et exécute en outre les étapes suivantes :
-
checkConcurrency
- Vérifie qu'il n'existe qu'une seule automatisation de ce runbook ciblant l'instance Amazon EC2 que vous spécifiez. Si le runbook détecte une autre automatisation en cours ciblant la même instance, l'automatisation prend fin. -
getTargetInstanceProperties
- Recueille les détails de l'instance cible. -
checkRootVolumeTags
- Détermine si le volume racine de l'instance Amazon EC2 cible contient des balises AWS réservées. -
cloneTargetInstanceAndMigrateToNitro
- Démarre une automatisation pour enfants à l'aide duAWS-CloneXenInstanceToNitro
runbook. -
branchOnTheOperationType
- Branches sur la valeur que vous avez spécifiée pour leOperationType
paramètre. -
getClonedInstanceId
- Récupère l'ID de l'instance nouvellement lancée à partir de l'automatisation enfant. -
checkIfRootVolumeIsBasedOnLVM
- Détermine si la partition racine est gérée par LVM. -
branchOnTheRootVolumeLVMStatus
- Si les approbations minimales requises sont reçues des principaux opérateurs, l'automatisation procède au remplacement du volume racine. -
manualInstructionsInCaseOfLVM
- Si le volume racine est géré par LVM, l'automatisation envoie une sortie contenant des instructions sur la façon de remplacer manuellement les volumes racines. -
startOfReplaceRootEBSVolumeBranch
- Lance le flux de travail de la branche Replace Root EBS Volume. -
checkIfTargetInstanceIsManagedByCFN
- Détermine si l'instance cible est gérée par une AWS CloudFormation pile. -
branchOnCFNStackStatus
- Branches en fonction de l'état de la CloudFormation pile. -
approvalForRootVolumesReplacement(WithCFN)
- Si l'instance cible a été lancée parCloudFormation, l'automatisation attend d'être approuvée une fois que l'instance nouvellement lancée a correctement démarré en tant que type d'Nitroinstance. Lorsque les approbations sont fournies, les volumes Amazon EBS de l'instance cible sont remplacés par les volumes racines de l'instance récemment lancée. -
approvalForRootVolumesReplacement
- Attend l'approbation après le démarrage réussi de l'instance nouvellement lancée en tant que type d'Nitroinstance. Lorsque les approbations sont fournies, les volumes Amazon EBS de l'instance cible sont remplacés par les volumes racines de l'instance récemment lancée. -
assertIfTargetEC2InstanceIsStillStopped
- Vérifie que l'instance cible est dans unstopped
état tel qu'il est avant de remplacer le volume racine. -
stopTargetInstanceForRootVolumeReplacement
- Si l'instance cible est en cours d'exécution, l'automatisation arrête l'instance avant de remplacer le volume racine. -
forceStopTargetInstanceForRootVolumeReplacement
- Force arrête l'instance cible en cas d'échec de l'étape précédente. -
stopClonedInstanceForRootVolumeReplacement
- Arrête l'instance nouvellement créée avant de remplacer les volumes Amazon EBS. -
forceStopClonedInstanceForRootVolumeReplacement
- Force arrête l'instance nouvellement créée si l'étape précédente échoue. -
getBlockDeviceMappings
- Récupère les mappages des périphériques en mode bloc à la fois pour la cible et pour les instances nouvellement créées. -
replaceRootEbsVolumes
- Remplace le volume racine de l'instance cible par le volume racine de l'instance nouvellement créée. -
EndOfReplaceRootEBSVolumeBranch
- Fin du flux de travail de la branche Replace Root EBS Volume. -
checkENAAttributeForTargetInstance
- Vérifie si l'attribut de mise en réseau améliorée (ENA) est activé pour l'instance Amazon EC2 cible. -
enableENAAttributeForTargetInstance
- Active l'attribut ENA pour l'instance Amazon EC2 cible si nécessaire. -
setNitroInstanceTypeForTargetInstance
- Remplace l'instance cible par le type d'Nitroinstance que vous avez spécifié. -
replicateRootVolumeTags
- Réplique les balises sur le volume Amazon EBS racine à partir de l'instance Amazon EC2 cible. -
startTargetInstance
- Démarre l'instance Amazon EC2 cible après avoir modifié le type d'instance. -
onFailureStopTargetEC2Instance
- Arrête l'instance Amazon EC2 cible si elle ne démarre pas en tant que type d'Nitroinstance. -
onFailureForceStopTargetEC2Instance
- Force l'arrêt de l'instance Amazon EC2 cible en cas d'échec de l'étape précédente. -
OnFailureRevertOriginalInstanceType
- Rétablit le type d'instance d'origine de l'instance Amazon EC2 cible si l'instance cible ne démarre pas en tant que type d'Nitroinstance. -
onFailureRollbackRootVolumeReplacement
- Annule toutes les modifications apportées par l'replaceRootEbsVolumes
étape si nécessaire. -
onFailureApprovalToStartTargetInstance
- Attend l'approbation du principal désigné pour démarrer l'instance Amazon EC2 cible après avoir annulé les modifications précédentes. -
onFailureStartTargetInstance
- Démarre l'instance Amazon EC2 cible. -
terminateClonedEC2Instance
- Met fin à l'instance Amazon EC2 clonée après avoir remplacé le volume Amazon EBS racine.