AWSSupport-MigrateXenToNitroLinux - AWS Systems Manager Riferimento al runbook di automazione

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

AWSSupport-MigrateXenToNitroLinux

Descrizione

Il AWSSupport-MigrateXenToNitroLinux runbook clona, prepara e migra un'istanza Linux Xen di Amazon Elastic Compute Cloud (Amazon EC2) su un tipo di istanza. Nitro Questo runbook fornisce due opzioni per i tipi di operazioni:

  • Clone&Migrate— Il flusso di lavoro di questa opzione è costituito da controlli preliminari, test e Clone&Migratefasi. Il flusso di lavoro viene eseguito utilizzando il AWSSupport-CloneXenEC2InstanceAndMigrateToNitro runbook.

  • FullMigration— Questa opzione esegue il Clone&Migrate flusso di lavoro e quindi esegue il passaggio aggiuntivo di Sostituisci i volumi root di Amazon EBS.

Importante

L'utilizzo di questo runbook comporta costi sul tuo account per il tempo di esecuzione delle istanze Amazon EC2, la creazione di volumi Amazon Elastic Block Store (Amazon EBS) e. AMIs Per maggiori dettagli, consulta i prezzi di Amazon EC2 e i prezzi di Amazon EBS.

Controlli preliminari

L'automazione esegue i seguenti controlli preliminari prima di continuare con la migrazione. Se uno qualsiasi dei controlli fallisce, l'automazione termina. Questa fase è solo una parte del Clone&Migrate flusso di lavoro.

  • Verifica se l'istanza di destinazione è già un tipo di Nitro istanza.

  • Verifica se l'opzione di acquisto delle istanze Spot è stata utilizzata per l'istanza di destinazione.

  • Verifica se i volumi dell'archivio delle istanze sono collegati all'istanza di destinazione.

  • Verifica che il sistema operativo (OS) dell'istanza di destinazione sia Linux.

  • Verifica se l'istanza di destinazione fa parte di un gruppo Amazon EC2 Auto Scaling. Se fa parte di un gruppo Auto Scaling, l'automazione verifica che l'istanza sia nello standby stato.

  • Verifica che l'istanza sia gestita daAWS Systems Manager.

Test

L'automazione crea una Amazon Machine Image (AMI) dall'istanza di destinazione e lancia un'istanza di test da quella appena creataAMI. Questa fase fa parte solo del Clone&Migrate flusso di lavoro.

Se l'istanza di test supera tutti i controlli di stato, l'automazione si interrompe e l'approvazione dei responsabili designati viene richiesta tramite la notifica di Amazon Simple Notification Service (Amazon SNS). Se viene fornita l'approvazione, l'automazione termina l'istanza di test, arresta l'istanza di destinazione e continua con la migrazione, mentre quella appena creata AMI viene annullata alla fine del flusso di lavoro. Clone&Migrate

Nota

Prima di fornire l'approvazione, si consiglia di verificare che tutte le applicazioni in esecuzione sull'istanza di destinazione siano state chiuse correttamente.

Clonazione e migrazione

L'automazione ne crea un'altra AMI dall'istanza di destinazione e lancia una nuova istanza per passare a un tipo di Nitro istanza. L'automazione completa i seguenti prerequisiti prima di continuare con la migrazione. Se uno qualsiasi dei controlli fallisce, l'automazione termina. Anche questa fase è solo una parte del Clone&Migrate flusso di lavoro.

  • Attiva l'attributo Enhanced Networking (ENA).

  • Installa la versione più recente dei driver ENA, se non sono già installati, oppure aggiorna la versione dei driver ENA alla versione più recente. Per garantire le massime prestazioni di rete, è necessario l'aggiornamento alla versione più recente del driver ENA se il tipo di Nitro istanza è di sesta generazione.

  • Verifica che il modulo NVMe sia installato. Se il modulo è installato, l'automazione verifica che il modulo sia stato caricato. initramfs

  • Analizza /etc/fstab e sostituisce le voci con i nomi dei dispositivi a blocchi (/dev/sd*o/dev/xvd*) con i rispettivi UUID. Prima di modificare la configurazione, l'automazione crea un backup del file nel percorso/etc/fstab*.

  • Disattiva la denominazione prevedibile delle interfacce aggiungendo l'net.ifnames=0opzione alla GRUB_CMDLINE_LINUX riga del /etc/default/grub file, se esiste, o al kernel in. /boot/grub/menu.lst

  • Rimuove il /etc/udev/rules.d/70-persistent-net.rules file, se esiste. Prima di rimuovere il file, l'automazione crea un backup del file nel percorso/etc/udev/rules.d/.

Dopo aver verificato tutti i requisiti, il tipo di istanza viene modificato nel tipo di Nitro istanza specificato. L'automazione attende che l'istanza appena creata superi tutti i controlli di stato dopo essere stata avviata come tipo di Nitro istanza. L'automazione attende quindi l'approvazione dei responsabili designati per creare una AMI delle istanze Nitro avviate con successo. Se l'approvazione viene negata, l'automazione termina, lasciando in esecuzione l'istanza appena creata e l'istanza di destinazione rimane interrotta.

Sostituisci il volume Amazon EBS principale

Se scegli FullMigration comeOperationType, l'automazione esegue la migrazione dell'istanza Amazon EC2 di destinazione al tipo di Nitro istanza specificato. L'automazione richiede l'approvazione dei responsabili designati per sostituire il volume root Amazon EBS dell'istanza Amazon EC2 di destinazione con il volume root dell'istanza Amazon EC2 clonata. Una volta completata la migrazione, l'istanza Amazon EC2 clonata viene terminata. Se l'automazione fallisce, il volume root originale di Amazon EBS viene collegato all'istanza Amazon EC2 di destinazione. Se il volume principale di Amazon EBS collegato all'istanza Amazon EC2 di destinazione presenta tag con il aws: prefisso applicato, l'FullMigrationoperazione non è supportata.

Prima di iniziare

L'istanza di destinazione deve disporre di un accesso a Internet in uscita. Questo serve per accedere a repository per driver e dipendenze comekernel-devel,gcc,,patch,rpm-build, wget dracutmake, linux-headers e. unzip Se necessario, viene utilizzato il gestore di pacchetti.

È necessario un argomento Amazon SNS per inviare notifiche di approvazioni e aggiornamenti. Per ulteriori informazioni sulla creazione di un argomento Amazon SNS, consulta Creare un argomento Amazon SNS nella Guida per gli sviluppatori di Amazon Simple Notification Service.

Questo runbook supporta i seguenti sistemi operativi:

  • RHEL7.x - 8.5

  • Amazon Linux (2018.03), Amazon Linux 2

  • Server Debian

  • Ubuntu Server 18.04 LTS, 20.04 LTS e 20.10 STR

  • SUSE Linux Enterprise Server(SUSE 12 SP5, SUSE 15 SP2)

Esegui questa automazione (console)

Tipo di documento

Automazione di

Proprietario

Amazon

Piattaforme

Linux

Parametri

  • AutomationAssumeRole

    Tipo: String

    Descrizione: (Facoltativo) L'Amazon Resource Name (ARN) del ruolo AWS Identity and Access Management (IAM) che consente a Systems Manager Automation di eseguire le azioni per tuo conto. Se non viene specificato alcun ruolo, Systems Manager Automation utilizza le autorizzazioni dell'utente che avvia questo runbook.

  • Riconoscimento

    Tipo: String

    Descrizione: (Obbligatorio) Leggi i dettagli completi delle azioni eseguite da questo runbook di automazione ed entra Yes, I understand and acknowledge per procedere con l'utilizzo del runbook.

  • Approva IAM

    Tipo: String

    Descrizione: (Obbligatorio) Gli ARN dei ruoli, degli utenti o dei nomi utente IAM che possono fornire approvazioni all'automazione. È possibile specificare un massimo di 10 approvatori.

  • DeleteResourcesOnFailure

    Tipo: Booleano

    Descrizione: (Facoltativo) Determina se l'istanza appena creata e AMI quella per la migrazione vengono eliminate in caso di errore dell'automazione.

    Valori validi: True | False

    Impostazione predefinita: True

  • MinimumRequiredApprovals

    Tipo: String

    Descrizione: (Facoltativo) Il numero minimo di approvazioni necessarie per continuare a eseguire l'automazione quando vengono richieste le approvazioni.

    Valori validi: 1-10

    Impostazione predefinita: 1

  • NitroInstanceType

    Tipo: String

    Descrizione: (Obbligatorio) Il tipo di Nitro istanza in cui si desidera modificare l'istanza. I tipi di istanza supportati includono M5, M6, C5, C6, R5, R6 e T3.

    Impostazione predefinita: m5.xlarge

  • OperationType

    Tipo: String

    Descrizione: (Obbligatorio) L'operazione che si desidera eseguire. L'FullMigrationopzione esegue le stesse attività Clone&Migrate e sostituisce inoltre il volume root dell'istanza di destinazione. Il volume radice dell'istanza di destinazione viene sostituito con il volume radice dell'istanza appena creata dopo il processo di migrazione. L'FullMigrationoperazione non supporta i volumi root definiti da Logical Volume Manager (LVM).

    Valori validi: Clone&Migrate | FullMigration

  • SNS TopicArn

    Tipo: String

    Descrizione: (Obbligatorio) L'ARN dell'argomento Amazon SNS per la notifica di approvazione. L'argomento Amazon SNS viene utilizzato per inviare le notifiche di approvazione richieste durante l'automazione.

  • TargetInstanceId

    Tipo: String

    Descrizione: (obbligatorio) L'ID delle istanze Amazon EC2 da migrare.

Autorizzazioni IAM richieste

Il AutomationAssumeRole parametro richiede le seguenti azioni per utilizzare correttamente il 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

Fasi del documento

  • startOfPreliminaryChecksBranch- Diramazioni al flusso di lavoro dei controlli preliminari.

  • getTargetInstanceProperties- Raccoglie i dettagli dall'istanza di destinazione.

  • checkIfNitroInstanceTypeIsSupportedInAZ- Determina se il tipo di istanza Amazon EC2 di destinazione è supportato nella stessa zona di disponibilità dell'istanza di destinazione.

  • getXenInstanceTypeDetails- Raccoglie dettagli sul tipo di istanza di origine.

  • checkIfInstanceHypervisorIsNitroAlready- Verifica se l'istanza di destinazione è già in esecuzione come tipo di Nitro istanza.

  • checkIfTargetInstanceLifecycleIsSpot- Verifica se l'opzione di acquisto dell'istanza di destinazione è Spot.

  • checkIfOperatingSystemIsLinux- Verifica se il sistema operativo dell'istanza di destinazione è Linux.

  • verifySSMConnectivityForTargetInstance- Verifica che l'istanza di destinazione sia gestita da Systems Manager.

  • checkIfEphemeralVolumeAreSupported- Verifica se il tipo di istanza corrente dell'istanza di destinazione supporta i volumi di archiviazione delle istanze.

  • verifyIfTargetInstanceHasEphemeralVolumesAttached- Verifica se all'istanza di destinazione sono collegati i volumi dell'archivio delle istanze.

  • checkIfRootVolumeIsEBS- Verifica se il tipo di volume root dell'istanza di destinazione è EBS.

  • checkIfTargetInstanceIsInASG- Verifica se l'istanza di destinazione fa parte di un gruppo Auto Scaling.

  • endOfPreliminaryChecksBranch- Fine del ramo dei controlli preliminari.

  • startOfTestBranch- Diramazioni al flusso di lavoro dei test.

  • createTestImage- Crea un test AMI dell'istanza di destinazione.

  • launchTestInstanceInSameSubnet- Avvia un'istanza di test dal test AMI utilizzando la stessa configurazione dell'istanza di destinazione.

  • cleanupTestInstance- Termina l'istanza di test.

  • endOfTestBranch- Fine del ramo Testing.

  • checkIfTestingBranchSucceeded- Verifica lo stato del ramo Testing.

  • approvalToStopTargetInstance- Attende l'approvazione dei responsabili designati per interrompere l'istanza bersaglio.

  • stopTargetEC2Instance- Arresta l'istanza di destinazione.

  • forceStopTargetEC2Instance- La forza arresta l'istanza di destinazione solo se il passaggio precedente non riesce a fermare l'istanza.

  • startOfCloneAndMigrateBranch- Diramazioni al Clone&Migrate flusso di lavoro.

  • createBackupImage- Crea una AMI delle istanze di destinazione per fungere da backup.

  • launchInstanceInSameSubnet- Avvia una nuova istanza dal backup AMI utilizzando la stessa configurazione dell'istanza di origine.

  • waitForClonedInstanceToPassStatusChecks- Attende che l'istanza appena creata superi tutti i controlli di stato.

  • verifySSMConnectivityForClonedInstance- Verifica che l'istanza appena creata sia gestita da Systems Manager.

  • checkAndInstallENADrivers- Verifica se i driver ENA sono installati nell'istanza appena creata e installa i driver se necessario.

  • checkAndAddNVMEDrivers- Verifica se i driver NVMe sono installati nell'istanza appena creata e installa i driver se necessario.

  • checkAndModifyFSTABEntries- Controlla se i nomi dei dispositivi sono utilizzati /etc/fstab e, se necessario, li sostituisce con UUID.

  • stopClonedInstance- Arresta l'istanza appena creata.

  • forceStopClonedInstance- Force arresta l'istanza appena creata solo se il passaggio precedente non riesce a fermare l'istanza.

  • checkENAAttributeForClonedInstance- Verifica se l'attributo di rete avanzato è attivato per l'istanza appena creata.

  • setNitroInstanceTypeForClonedInstance- Cambia il tipo di istanza per l'istanza appena creata con il tipo di Nitro istanza specificato.

  • startClonedInstance- Avvia l'istanza appena creata di cui è stato modificato il tipo di istanza.

  • approvalForCreatingImageAfterDriversInstallation- Se l'istanza viene avviata correttamente come tipo di Nitro istanza, l'automazione attende l'approvazione dei responsabili richiesti. Se viene fornita l'approvazione, AMI viene creato un da utilizzare come GoldenAMI.

  • createImageAfterDriversInstallation- Crea un AMI oggetto da usare come oroAMI.

  • endOfCloneAndMigrateBranch- Fine della Clone&Migrate filiale

  • cleanupTestImage- Annulla la registrazione dei dati AMI creati per il test.

  • failureHandling- Verifica se hai scelto di terminare le risorse in caso di errore.

  • onFailureTerminateClonedInstance- Termina l'istanza appena creata se l'automazione fallisce.

  • onFailurecleanupTestImage- Annulla la registrazione dei dati AMI creati per il test.

  • onFailureApprovalToStartTargetInstance- Se l'automazione fallisce, attende l'approvazione dei responsabili designati per avviare l'istanza di destinazione.

  • onFailureStartTargetInstance- Se l'automazione fallisce, avvia l'istanza di destinazione.

Autorizzazioni IAM richieste

Il AutomationAssumeRole parametro richiede le seguenti azioni per utilizzare correttamente il 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

Fasi del documento

Il FullMigration flusso di lavoro esegue gli stessi passaggi del Clone&Migrate flusso di lavoro e inoltre esegue i seguenti passaggi:

  • checkConcurrency- Verifica che esista una sola automazione di questo runbook destinata all'istanza Amazon EC2 specificata. Se il runbook rileva un'altra automazione in corso destinata alla stessa istanza, l'automazione termina.

  • getTargetInstanceProperties- Raccoglie i dettagli dall'istanza di destinazione.

  • checkRootVolumeTags- Determina se il volume principale dell'istanza Amazon EC2 di destinazione contiene tag AWS riservati.

  • cloneTargetInstanceAndMigrateToNitro- Avvia un'automazione per bambini utilizzando il AWS-CloneXenInstanceToNitro runbook.

  • branchOnTheOperationType- Diramazioni in base al valore specificato per il OperationType parametro.

  • getClonedInstanceId- Recupera l'ID dell'istanza appena avviata dall'automazione infantile.

  • checkIfRootVolumeIsBasedOnLVM- Determina se la partizione root è gestita da LVM.

  • branchOnTheRootVolumeLVMStatus- Se i responsabili ricevono le approvazioni minime richieste, l'automazione procede con la sostituzione del volume principale.

  • manualInstructionsInCaseOfLVM- Se il volume root è gestito da LVM, l'automazione invia un output contenente istruzioni su come sostituire manualmente i volumi root.

  • startOfReplaceRootEBSVolumeBranch- Avvia il flusso di lavoro Replace Root EBS Volume branch.

  • checkIfTargetInstanceIsManagedByCFN- Determina se l'istanza di destinazione è gestita da uno AWS CloudFormation stack.

  • branchOnCFNStackStatus- Rami in base allo stato dello CloudFormation stack.

  • approvalForRootVolumesReplacement(WithCFN)- Se l'istanza di destinazione è stata lanciata daCloudFormation, l'automazione attende l'approvazione dopo il corretto avvio dell'istanza appena avviata come tipo di Nitro istanza. Quando vengono fornite le approvazioni, i volumi Amazon EBS dell'istanza di destinazione vengono sostituiti con i volumi root dell'istanza appena lanciata.

  • approvalForRootVolumesReplacement- Attende l'approvazione dopo che l'istanza appena avviata viene avviata correttamente come tipo di Nitro istanza. Quando vengono fornite le approvazioni, i volumi Amazon EBS dell'istanza di destinazione vengono sostituiti con i volumi root dell'istanza appena lanciata.

  • assertIfTargetEC2InstanceIsStillStopped- Verifica che l'istanza di destinazione sia in uno stopped stato prima di sostituire il volume principale.

  • stopTargetInstanceForRootVolumeReplacement- Se l'istanza di destinazione è in esecuzione, l'automazione arresta l'istanza prima di sostituire il volume root.

  • forceStopTargetInstanceForRootVolumeReplacement- La forza arresta l'istanza di destinazione se il passaggio precedente fallisce.

  • stopClonedInstanceForRootVolumeReplacement- Interrompe l'istanza appena creata prima di sostituire i volumi Amazon EBS.

  • forceStopClonedInstanceForRootVolumeReplacement- La forza arresta l'istanza appena creata se il passaggio precedente fallisce.

  • getBlockDeviceMappings- Recupera le mappature dei dispositivi a blocchi sia per le istanze di destinazione che per quelle appena create.

  • replaceRootEbsVolumes- Sostituisce il volume radice dell'istanza di destinazione con il volume radice dell'istanza appena creata.

  • EndOfReplaceRootEBSVolumeBranch- Fine del flusso di lavoro Replace Root EBS Volume branch.

  • checkENAAttributeForTargetInstance- Verifica se l'attributo Enhanced Networking (ENA) è attivato per l'istanza Amazon EC2 di destinazione.

  • enableENAAttributeForTargetInstance- Attiva l'attributo ENA per l'istanza Amazon EC2 di destinazione, se necessario.

  • setNitroInstanceTypeForTargetInstance- Cambia l'istanza di destinazione con il tipo di Nitro istanza specificato.

  • replicateRootVolumeTags- Replica i tag sul volume principale di Amazon EBS dall'istanza Amazon EC2 di destinazione.

  • startTargetInstance- Avvia l'istanza Amazon EC2 di destinazione dopo aver modificato il tipo di istanza.

  • onFailureStopTargetEC2Instance- Arresta l'istanza Amazon EC2 di destinazione se non viene avviata come tipo di Nitro istanza.

  • onFailureForceStopTargetEC2Instance- La forza arresta l'istanza Amazon EC2 di destinazione se il passaggio precedente fallisce.

  • OnFailureRevertOriginalInstanceType- Ripristina l'istanza Amazon EC2 di destinazione al tipo di istanza originale se l'istanza di destinazione non viene avviata come tipo di Nitro istanza.

  • onFailureRollbackRootVolumeReplacement- Annulla tutte le modifiche apportate replaceRootEbsVolumes passo dopo passo, se necessario.

  • onFailureApprovalToStartTargetInstance- Attende l'approvazione del responsabile designato per avviare l'istanza Amazon EC2 di destinazione dopo aver annullato le modifiche precedenti.

  • onFailureStartTargetInstance- Avvia l'istanza Amazon EC2 di destinazione.

  • terminateClonedEC2Instance- Termina l'istanza Amazon EC2 clonata dopo aver sostituito il volume principale di Amazon EBS.