AWSSupport-MigrateXenToNitroLinux - AWS Systems Manager 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 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 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 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 et Amazon EBS.

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=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 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'FullMigrationopé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'FullMigrationoption exécute les mêmes tâches que le volume racine de votre instance cible Clone&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'FullMigrationopé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 du AWS-CloneXenInstanceToNitro runbook.

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