AWSSupport-MigrateXenToNitroLinux - AWS Systems Manager Guide de référence du manuel d'automatisation

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 du AWSSupport-CloneXenEC2InstanceAndMigrateToNitro runbook.

  • FullMigration— Cette option exécute le Clone&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 et Amazon EBS 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=0option à la GRUB_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'FullMigrationopé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'FullMigrationoption exécute les mêmes tâches que le volume racine de votre instance cible Clone&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'FullMigrationopé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 du AWS-CloneXenInstanceToNitro runbook.

  • branchOnTheOperationType- Branches sur la valeur que vous spécifiez pour le OperationType 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 un stopped é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.