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 d'Amazon Elastic Compute Cloud (Amazon EC2) vers un Nitro type d'instance. 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 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 frais pour votre compte liés à la durée de fonctionnement des EC2 instances Amazon, à la création de volumes Amazon Elastic Block Store (Amazon EBS) et AMIs. Pour plus de détails, consultez les rubriques Amazon EC2 Pricing
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 constitue qu'une partie du Clone&Migrate
flux de travail.
-
Vérifie si l'instance cible est déjà une Nitro type d'instance.
-
Vérifie si l'option d'achat d'instances Spot a été utilisée pour l'instance cible.
-
Vérifie si des volumes de stockage d'instance sont attachés à l'instance cible.
-
Vérifie que le système d'exploitation (OS) 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 en bon
standby
état. -
Vérifie que l'instance est gérée par AWS Systems Manager.
Test
L'automatisation crée un Amazon Machine Image (AMI) depuis l'instance cible et lance une instance de test à partir de l'instance nouvellement créée AMI. Cette phase fait uniquement partie du Clone&Migrate
flux de travail.
Si l'instance de test passe toutes les vérifications de statut, l'automatisation s'interrompt et l'approbation des responsables désignés est demandée par le biais de 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 le nouveau AMI est désenregistré à la fin du flux de travail. Clone&Migrate
Note
Avant de fournir une 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 depuis l'instance cible, et lance une nouvelle instance pour passer à une Nitro type d'instance. 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 constitue é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 Nitro le type d'instance est la 6e génération.
-
Vérifie que le NVMe module est installé. Si le module est installé, l'automatisation vérifie qu'il est chargé.
initramfs
-
Analyse
/etc/fstab
et remplace les entrées par des noms de périphériques de blocage (/dev/sd*
ou/dev/xvd*
) par leurs noms respectifs UUIDs. Avant de modifier la configuration, l'automatisation crée une sauvegarde du fichier sur le 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 sur le chemin/etc/udev/rules.d/
.
Après avoir vérifié toutes les exigences, le type d'instance est remplacé par Nitro type d'instance que vous spécifiez. L'automatisation attend que l'instance nouvellement créée passe toutes les vérifications de statut après avoir démarré en tant que Nitro type d'instance. L'automatisation attend ensuite l'approbation des responsables désignés pour créer un AMI du lancement réussi Nitro instance. Si l'approbation est refusée, l'automatisation prend fin, laissant l'instance nouvellement créée en cours d'exécution, et l'instance cible reste arrêtée.
Remplacer le volume Amazon EBS racine
Si vous FullMigration
le souhaitezOperationType
, l'automatisation migre l' EC2 instance Amazon cible vers le Nitro type d'instance que vous spécifiez. Automation demande l'approbation des principaux désignés pour remplacer le volume Amazon EBS racine de l' EC2 instance Amazon cible par le volume racine de l'instance EC2 Amazon clonée. Une fois la migration réussie, l' EC2 instance Amazon clonée est arrêtée. Si l'automatisation échoue, le volume racine Amazon EBS d'origine est attaché à l' EC2 instance Amazon cible. Si le volume Amazon EBS racine attaché à l' EC2 instance Amazon cible possède 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. Il s'agit d'accéder à des référentiels pour les pilotes et les dépendances tels que kernel-devel, gcc, patch, rpm-build, wget, dracut, make, linux-headers, et unzip. Le gestionnaire de packages est utilisé si nécessaire.
Une rubrique Amazon SNS est requise pour envoyer des notifications pour les approbations et les mises à jour. Pour plus d'informations sur la création d'une rubrique Amazon SNS, consultez la rubrique Création d'une rubrique Amazon SNS dans le manuel du développeur Amazon Simple Notification Service.
Ce runbook est compatible avec les systèmes d'exploitation suivants :
-
RHEL 7,x - 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 (SUSE12SP5, SUSE15SP2)
Exécuter 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 lance ce runbook.
-
Reconnaissance
Type : String
Description : (Obligatoire) Lisez le détail complet des actions effectuées par ce runbook d'automatisation, puis entrez
Yes, I understand and acknowledge
pour continuer à utiliser le runbook. -
Approbation IAM
Type : String
Description : (Obligatoire) Les ARNs rôles, utilisateurs ou noms d'utilisateur IAM qui peuvent fournir des approbations pour 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 pour la migration sont supprimés en cas d'échec de l'automatisation.
Valeurs valides : Vrai | Faux
Valeur par défaut : True
-
MinimumRequiredApprovals
Type : String
Description : (Facultatif) Le nombre minimum d'approbations requises pour continuer à exécuter l'automatisation lorsque des approbations sont demandées.
Valeurs valides : 1 à 10
Valeur par défaut : 1
-
NitroInstanceType
Type : String
Description : (Obligatoire) Le Nitro type d'instance auquel vous souhaitez remplacer 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) 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 également. 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
-
SNSTopicArn
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 EC2 instances Amazon à 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 au flux de travail des vérifications préliminaires. -
getTargetInstanceProperties
- Recueille les détails de l'instance cible. -
checkIfNitroInstanceTypeIsSupportedInAZ
- Détermine si le type d' EC2 instance Amazon cible est pris en charge dans la même zone de disponibilité que l'instance cible. -
getXenInstanceTypeDetails
- Rassemble des informations sur le type d'instance source. -
checkIfInstanceHypervisorIsNitroAlready
- Vérifie si l'instance cible est déjà exécutée en tant que Nitro type d'instance. -
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 vérifications préliminaires. -
startOfTestBranch
- Branches au 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 de test. -
checkIfTestingBranchSucceeded
- Vérifie l'état de la branche de test. -
approvalToStopTargetInstance
- Attend l'approbation des principaux désignés pour arrêter l'instance cible. -
stopTargetEC2Instance
- Arrête l'instance cible. -
forceStopTargetEC2Instance
- La force arrête l'instance cible uniquement si l'étape précédente ne parvient pas à arrêter l'instance. -
startOfCloneAndMigrateBranch
- Succursales vers le Clone&Migrate flux de travail. -
createBackupImage
- Crée un 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 toutes les vérifications 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 installe les pilotes si nécessaire. -
checkAndAddNVMEDrivers
- Vérifie si des NVMe pilotes sont installés sur l'instance nouvellement créée et installe les pilotes si nécessaire. -
checkAndModifyFSTABEntries
- Vérifie si les noms des appareils sont utilisés/etc/fstab
et les remplace par UUIDs si nécessaire. -
stopClonedInstance
- Arrête l'instance nouvellement créée. -
forceStopClonedInstance
- La 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
- Modifie le type d'instance pour l'instance nouvellement créée en Nitro type d'instance que vous spécifiez. -
startClonedInstance
- Démarre l'instance nouvellement créée dont vous avez modifié le type d'instance. -
approvalForCreatingImageAfterDriversInstallation
- Si l'instance démarre avec succès en tant que Nitro type d'instance, l'automatisation attend l'approbation des principaux requis. Si une approbation est fournie, un AMI est créé pour être utilisé comme un Golden AMI. -
createImageAfterDriversInstallation
- Crée un AMI à utiliser comme une médaille d'or AMI. -
endOfCloneAndMigrateBranch
- Fin de Clone&Migrate branche. -
cleanupTestImage
- Désenregistre le AMI créé pour les tests. -
failureHandling
- Vérifie si vous avez choisi de mettre fin aux 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 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 également les étapes suivantes :
-
checkConcurrency
- Vérifie qu'il n'existe qu'une seule automatisation de ce runbook ciblant l' EC2 instance Amazon que vous spécifiez. Si le runbook trouve 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' EC2 instance Amazon cible contient des balises AWS réservées. -
cloneTargetInstanceAndMigrateToNitro
- Lance une automatisation secondaire à l'aide duAWS-CloneXenInstanceToNitro
runbook. -
branchOnTheOperationType
- Branches sur la valeur que vous spécifiez pour leOperationType
paramètre. -
getClonedInstanceId
- Récupère l'ID de l'instance nouvellement lancée à partir de l'automatisation des enfants. -
checkIfRootVolumeIsBasedOnLVM
- Détermine si la partition racine est gérée par LVM. -
branchOnTheRootVolumeLVMStatus
- Si les approbations minimales requises sont reçues des donneurs d'ordre, l'automatisation se poursuit avec le remplacement du volume racine. -
manualInstructionsInCaseOfLVM
- Si le volume racine est géré par LVM, l'automatisation envoie une sortie contenant des instructions expliquant comment remplacer manuellement les volumes racine. -
startOfReplaceRootEBSVolumeBranch
- Démarre 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 basées sur l'état de la CloudFormation pile. -
approvalForRootVolumesReplacement(WithCFN)
- Si l'instance cible a été lancée par CloudFormation, l'automatisation attend d'être approuvée une fois que l'instance nouvellement lancée a démarré avec succès en tant que Nitro type d'instance. Lorsque les approbations sont fournies, les volumes Amazon EBS de l'instance cible sont remplacés par les volumes racine de l'instance nouvellement lancée. -
approvalForRootVolumesReplacement
- Attend l'approbation après le démarrage réussi de l'instance nouvellement lancée en tant que Nitro type d'instance. Lorsque les approbations sont fournies, les volumes Amazon EBS de l'instance cible sont remplacés par les volumes racine de l'instance nouvellement lancée. -
assertIfTargetEC2InstanceIsStillStopped
- Vérifie que l'instance cible est dans unstopped
état 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
- La force arrête l'instance cible si l'étape précédente échoue. -
stopClonedInstanceForRootVolumeReplacement
- Arrête l'instance nouvellement créée avant de remplacer les volumes Amazon EBS. -
forceStopClonedInstanceForRootVolumeReplacement
- La force arrête l'instance nouvellement créée en cas d'échec de l'étape précédente. -
getBlockDeviceMappings
- Récupère les mappages de périphériques en mode bloc pour les instances cibles et 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 Enhanced Networking (ENA) est activé pour l' EC2instance Amazon cible. -
enableENAAttributeForTargetInstance
- Active l'attribut ENA pour l' EC2 instance Amazon cible si nécessaire. -
setNitroInstanceTypeForTargetInstance
- Remplace l'instance cible par Nitro type d'instance que vous spécifiez. -
replicateRootVolumeTags
- Réplique les balises du volume Amazon EBS racine à partir de l'instance Amazon EC2 cible. -
startTargetInstance
- Démarre l' EC2 instance Amazon cible après avoir modifié le type d'instance. -
onFailureStopTargetEC2Instance
- Arrête l' EC2instance Amazon cible si elle ne démarre pas en tant que Nitro type d'instance. -
onFailureForceStopTargetEC2Instance
- Force arrête l' EC2 instance Amazon cible en cas d'échec de l'étape précédente. -
OnFailureRevertOriginalInstanceType
- Rétablit le type d' EC2instance d'origine de l'instance Amazon cible si l'instance cible ne démarre pas en tant que Nitro type d'instance. -
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' EC2 instance Amazon cible après avoir annulé les modifications précédentes. -
onFailureStartTargetInstance
- Démarre l' EC2instance Amazon cible. -
terminateClonedEC2Instance
- Résout l' EC2instance Amazon clonée après avoir remplacé le volume Amazon EBS racine.