View a markdown version of this page

AWSSupport-CloneXenEC2InstanceAndMigrateToNitro - AWS Systems Manager Referência do Automation Runbook

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

AWSSupport-CloneXenEC2InstanceAndMigrateToNitro

Descrição

Os AWSSupport-CloneXenEC2 InstanceAndMigrateToNitro runbooks clonam, preparam e migram a instância Linux clonada do Amazon Elastic Compute Cloud (Amazon EC2), atualmente em execução na plataforma Amazon EC2 Xen, para ser executada na plataforma Amazon EC2 Nitro. Essa automação é dividida em três ramos diferentes:

  • Verificações preliminares: avalia todos os pré-requisitos para continuar com a migração, incluindo verificar se a instância de destino do Amazon EC2 já está sendo executada na plataforma Nitro, determinando o status do ciclo de vida, validando o sistema operacional e verificando a conectividade do Systems Manager.

  • Teste: cria um teste a AMI partir da instância de destino do Amazon EC2 e lança uma instância de teste do Amazon EC2 para validar o processo de migração antes de continuar.

  • CloneAndMigrate: cria um clone da instância de destino do Amazon EC2, instala os drivers necessários, configura o sistema para a plataforma Nitro e altera o tipo de instância para o tipo Nitro desejado.

Importante

Antes de fornecer aprovação para interromper a instância de destino do Amazon EC2, certifique-se de que todos os aplicativos em execução na instância estejam normalmente fechados. Se a instância do Amazon EC2 não tiver um endereço IP elástico associado, o IPv4 endereço público automático mudará quando a instância for interrompida e iniciada.

Importante

Aviso: a execução deste runbook pode gerar cobranças adicionais em sua conta para a instância do Amazon EC2, Amazon EBS Volumes & s. AMI Consulte os preços do Amazon EC2 e os preços do Amazon EBS para obter mais detalhes.

Importante

Pré-requisitos

A instância de destino do Amazon EC2 exige acesso externo aos repositórios para instalar drivers e dependênciaskernel-devel, como,,,,,,, gcc patchrpm-build, e unzip usar o gerenciador de pacotes wget dracut makelinux-headers, se necessário.

Sistemas operacionais compatíveis

  • Red Hat Enterprise Linux (RHEL) 8 e 9

  • Amazon Linux 2 e AL2023

  • Ubuntu Server 18.04 LTS, 20.04 e 22.04

  • Debian 11 e 12 (somente AWS partição)

  • SUSE12SP5 e SUSE15 SP (5,6)

Como funciona?

O runbook executa as seguintes etapas de alto nível:

  • Valida os pré-requisitos e verifica se a instância é adequada para migração.

  • Cria e testa um AMI para garantir que a migração seja bem-sucedida.

  • Ativa o atributo Enhanced Networking (ENA) e instala os drivers ENA mais recentes.

  • Verifica e configura o NVMe módulo no initramfs.

  • Analisa e modifica /etc/fstab para substituir os nomes dos dispositivos por. UUIDs

  • Desativa a nomenclatura previsível da interface e remove as regras de rede persistentes.

  • Altera o tipo de instância clonada para o tipo Nitro desejado.

  • Cria uma final AMI que pode ser usada como uma imagem dourada para iniciar instâncias do Nitro.

Executar esta automação (console)

Tipo de documento

Automação

Proprietário

Amazon

Plataformas

Linux

Parâmetros

Permissões obrigatórias do IAM

O parâmetro AutomationAssumeRole requer as seguintes ações para usar o runbook com êxito.

  • autoscaling:DescribeAutoScalingInstances

  • ec2:CreateImage

  • ec2:CreateTags

  • ec2:DescribeImages

  • ec2:DescribeInstanceAttribute

  • ec2:DescribeInstances

  • ec2:DescribeInstanceStatus

  • ec2:DescribeInstanceTypeOfferings

  • ec2:DescribeInstanceTypes

  • ec2:DeregisterImage

  • ec2:ModifyInstanceAttribute

  • ec2:RunInstances

  • ec2:StartInstances

  • ec2:StopInstances

  • ec2:TerminateInstances

  • iam:PassRole

  • sns:Publish

  • ssm:DescribeAutomationExecutions

  • ssm:DescribeInstanceInformation

  • ssm:SendCommand

Exemplo de política do IAM:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "autoscaling:DescribeAutoScalingInstances", "ec2:CreateImage", "ec2:CreateTags", "ec2:DescribeImages", :ec2:DescribeInstanceAttribute:, "ec2:DescribeInstances", "ec2:DescribeInstanceStatus", "ec2:DescribeInstanceTypes", "ec2:DeregisterImage", "ec2:ModifyInstanceAttribute", "ec2:RunInstances", "ec2:StartInstances", "ec2:StopInstances", "ec2:TerminateInstances", "iam:PassRole", "ssm:DescribeAutomationExecutions", "ssm:DescribeInstanceInformation", "ssm:SendCommand" ], "Resource": "*" } ] }

Instruções

Siga estas etapas para configurar a automação:

  1. Navegue até AWSSupport-CloneXenEC2InstanceAndMigrateToNitroem Systems Manager em Documentos.

  2. Selecione Execute automation.

  3. Para os parâmetros de entrada, insira o seguinte:

    • AutomationAssumeRole (Opcional):

      • Descrição: (Opcional) O ARN da função AWS Identity and Access Management (IAM) que permite que o Systems Manager Automation execute as ações em seu nome. Se nenhum perfil for especificado, o Systems Manager Automation usa as permissões do usuário que inicia este runbook.

      • Tipo: AWS::IAM::Role::Arn

    • TargetInstanceId (Obrigatório):

      • Descrição: (Obrigatório) ID da instância de destino do Amazon EC2 que você deseja migrar para a plataforma Nitro.

      • Tipo: AWS::EC2::Instance::Id

    • NitroInstanceType (Opcional):

      • Descrição: (Opcional) Insira o tipo de instância Nitro de destino. Somente as instâncias Nitro M5, M6, C5, C6, R5, R6 e T3 são suportadas (por exemplo, t3.small). Padrão: m5.xlarge.

      • Tipo: String

      • Allowed-pattern: ^(m5a?z?d?n?|c5a?d?n?|r5a?d?n?b?|(c|m|r)6(a|i)?d?)\\.(2|4|8|12|16|24|32)?xlarge$|^t3a?\\.((x|2x)?large|nano|micro|small|medium)$

      • Padrão: m5.xlarge

    • SNSTopicArn (obrigatório):

      • Descrição: (Obrigatório) Forneça o ARN do tópico do Amazon SNS para notificação de aprovação. Esse tópico do Amazon SNS é usado para enviar notificações de aprovação durante a execução da automação.

      • Tipo: String

      • Allowed-pattern: ^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):sns:(us(-gov|-isob?)?|ap|ca|af|me|cn|eu|sa)-(central|(north|south)?(east|west)?)-\\d:\\d{12}:[a-zA-Z0-9_.-]{1,256}$

    • ApprovERIA (obrigatório):

      • Descrição: (Obrigatório) Forneça uma lista de diretores AWS autenticados que possam aprovar ou rejeitar a ação. O número máximo de aprovadores é 10.

      • Tipo: StringList

      • Allowed-pattern: ^[a-zA-Z0-9_+=,.@\\-\/]{1,128}$|^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):(sts|iam)::[0-9]{12}:[a-zA-Z0-9_+=,.@\\-\/]{1,256}$

    • MinimumRequiredApprovals (Opcional):

      • Descrição: (Opcional) O número mínimo de aprovações necessárias para retomar a automação. Padrão: 1.

      • Tipo: inteiro

      • Padrão: 1

    • DeleteResourcesOnFailure (Opcional):

      • Descrição: (Opcional) Se a instância clonada do Amazon EC2 deve ser encerrada AMI e se a automação falhar.

      • Tipo: Boolean

      • Valores permitidos: [true, false]

      • Padrão: true

    • Reconhecimento (obrigatório):

      • Descrição: (Obrigatório) Leia os detalhes completos das ações realizadas por este runbook de automação e escreva “Sim, eu entendo e reconheço” se você reconhece as etapas.

      • Tipo: String

      • Allowed-pattern: ^Yes, I understand and acknowledge$

    • AllowInstanceStoreInstances (Opcional):

      • Descrição: (opcional) se você especificar yes, o runbook é executado em instâncias que têm volumes de armazenamento de instâncias anexados. Aviso: os dados nos volumes de armazenamento de instâncias são perdidos quando a instância é interrompida. Esse parâmetro ajuda a evitar a perda acidental de dados.

      • Tipo: Boolean

      • Valores permitidos: [yes, no]

      • Padrão: no

  4. Selecione Executar.

  5. A automação é iniciada.

  6. O bucket realiza as seguintes etapas:

    • checkConcurrency:

      Garante que haja apenas uma execução desse runbook direcionada à instância atual do Amazon EC2.

    • getTargetInstanceProperties:

      Busca os detalhes da instância de destino do Amazon EC2.

    • checkIfNitroInstanceTypeIsSupportedInAZ:

      Determina se o tipo de instância Nitro de destino é suportado na mesma zona de disponibilidade da instância de destino do Amazon EC2.

    • createTestImage:

      Cria um teste AMI a partir da instância fornecida.

    • launchTestInstanceInSameSubnet:

      Lança uma instância de teste do Amazon EC2 a partir do teste AMI usando a mesma configuração da instância de destino do Amazon EC2.

    • approvalToStopTargetInstance:

      Aguarda a aprovação dos diretores designados para interromper a instância de destino.

    • createBackupImage:

      Cria um a AMI partir da instância fornecida para backup.

    • launchInstanceInSameSubnet:

      Lança uma nova instância do Amazon EC2 a partir do backup AMI usando a mesma configuração da instância de origem do Amazon EC2.

    • checkAndInstallENADrivers:

      Determina a disponibilidade dos drivers do Enhanced Networking Adapter (ENA) na instância do Amazon EC2 e instala, se estiverem ausentes.

    • checkAndAddNVMEDrivers:

      Determina a disponibilidade dos drivers NVMe na instância clonada do Amazon EC2 e instala, se estiverem ausentes.

    • checkAndModifyFSTABEntries:

      Determina se o nome do dispositivo é usado /etc/fstab e o substitui pelo nome deles UUIDs, se encontrado.

    • setNitroInstanceTypeForClonedInstance:

      Define o tipo de instância do Amazon EC2 de destino fornecido para a instância clonada do Amazon EC2.

    • approvalForCreatingImageAfterDriversInstallation:

      Aguarda a aprovação do usuário se a instância clonada do Amazon EC2 for inicializada com sucesso na plataforma Nitro.

    • createImageAfterDriversInstallation:

      Cria uma imagem da nova instância do Amazon EC2 somente se a nova instância do Amazon EC2 for inicializada com sucesso na plataforma Nitro.

  7. Depois de concluído, revise a seção Saídas para obter os resultados detalhados da execução.

Referências

AWS Systems Manager Automation