View a markdown version of this page

AWSSupport-CloneXenEC2InstanceAndMigrateToNitro - AWS Systems Manager 自动化运行手册参考

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AWSSupport-CloneXenEC2InstanceAndMigrateToNitro

描述

这两InstanceAndMigrateToNitro本运行手册克隆、准备和迁移克隆的亚马逊弹性计算云 (Amazon EC AWSSupport-CloneXenEC2) Linux 实例,该实例目前在亚马逊 EC2 Xen 平台上运行,使其在亚马逊 EC2 Nitro 平台上运行。这种自动化分为三个不同的分支:

  • 初步检查:评估继续迁移的所有先决条件,包括检查目标 Amazon EC2 实例是否已在 Nitro 平台上运行、确定生命周期状态、验证操作系统以及验证 Systems Manager 连接。

  • 测试:AMI从目标 Amazon EC2 实例创建测试并启动测试 Amazon EC2 实例以验证迁移过程,然后再继续。

  • CloneAndMigrate:创建目标 Amazon EC2 实例的克隆,安装必要的驱动程序,为 Nitro 平台配置系统,并将实例类型更改为所需的 Nitro 类型。

重要

在批准停止目标 Amazon EC2 实例之前,请确保该实例上运行的所有应用程序都已正常关闭。如果 Amazon EC2 实例没有关联弹性 IP 地址,则在实例停止和启动后,自动公有 IPv4 地址将发生变化。

重要

免责声明:执行本运行手册可能会对您的账户收取额外费用,用于购买 Amazon EC2 实例、Amazon EBS Volumes 等。AMI有关更多详细信息,请参阅亚马逊 EC2 定价亚马逊 EBS 定价

重要

先决条件

目标 Amazon EC2 实例需要对存储库进行出站访问才能安装驱动程序和依赖项kernel-devel,例如gccpatchrpm-buildwgetdracut、、makelinux-headers、,并在需要时unzip使用包管理器。

受支持的操作系统

  • Red Hat Enterprise Linux(RHEL)8 和 9

  • 亚马逊 Linux 2 和 AL2023

  • Ubuntu Server 18.04 LTS、20.04 和 22.04

  • Debian 11 和 12(仅限AWS 分区)

  • SUSE12SP5 还有 SUSE15 SP (5,6)

如何工作?

运行手册执行以下高级步骤:

  • 验证先决条件并检查实例是否适合迁移。

  • 创建并测试AMI以确保迁移成功。

  • 启用增强联网 (ENA) 属性并安装最新的 ENA 驱动程序。

  • 在 initramfs 中验证和配置 NVMe 模块。

  • 分析并修改 /etc/fstab 以将设备名称替换为。 UUIDs

  • 禁用可预测的接口命名并移除永久性网络规则。

  • 将克隆的实例类型更改为所需的 Nitro 类型。

  • 创建最终版AMI,可用作启动 Nitro 实例的黄金镜像。

运行此自动化(控制台)

文档类型

自动化

所有者

Amazon

平台

Linux

参数

所需的 IAM 权限

AutomationAssumeRole 参数需要执行以下操作才能成功使用运行手册。

  • 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

示例 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": "*" } ] }

说明

按照这些步骤对自动化进行配置:

  1. AWSSupport-CloneXenEC2InstanceAndMigrateToNitro在 Systems Manager 的 “文档” 下导航至。

  2. 选择 Execute automation

  3. 对于输入参数,请输入以下内容:

    • AutomationAssumeRole (可选):

      • 描述:(可选)允许 Systems Manager Automation 代表您执行操作的 AWS Identity and Access Management (IAM) 角色的 ARN。如果未指定角色,Systems Manager Automation 将使用启动此运行手册的用户的权限。

      • 类型:AWS::IAM::Role::Arn

    • TargetInstanceId (必填):

      • 描述:(必填)您要迁移到 Nitro 平台的目标 Amazon EC2 实例的实例 ID。

      • 类型:AWS::EC2::Instance::Id

    • NitroInstanceType (可选):

      • 描述:(可选)输入目标 Nitro 实例类型。仅支持 Nitro M5、M6、C5、C6、R5、R6 和 T3 实例(例如 t3.small)。默认值:m5.xlarge。

      • 类型:String

      • 允许的模式:^(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)$

      • 默认值:m5.xlarge

    • SNSTopicArn(必填):

      • 描述:(必填)提供亚马逊 SNS 主题的 ARN 以获取批准通知。此 Amazon SNS 主题用于在自动执行期间发送批准通知。

      • 类型:String

      • 允许的模式:^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}$

    • ApproverIAM(必填):

      • 描述:(必填)提供能够批准或拒绝操作的 AWS 经过身份验证的委托人列表。最大审批者数量为 10。

      • 类型:StringList

      • 允许的模式:^[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 (可选):

      • 描述:(可选)恢复自动化所需的最低批准数量。默认值:1。

      • 类型:整数

      • 默认:1

    • DeleteResourcesOnFailure (可选):

      • 描述:(可选)是否终止克隆的 Amazon EC2 实例以及自动化AMI是否失败。

      • 类型:Boolean

      • 允许的值:[true, false]

      • 默认值:true

    • 致谢(必填):

      • 描述:(必填)请阅读本自动化运行手册执行的操作的完整详细信息,如果您确认这些步骤,请写上 “是的,我理解并确认”。

      • 类型:String

      • 允许的模式:^Yes, I understand and acknowledge$

    • AllowInstanceStoreInstances (可选):

      • 描述:(可选)如果您指定 yes,运行手册将在已附加实例存储卷的实例上运行。警告:实例停止后,实例存储卷中的数据将丢失。此参数有助于避免数据意外丢失。

      • 类型:Boolean

      • 允许的值:[yes, no]

      • 默认值:no

  4. 选择执行

  5. 自动化启动。

  6. 文档将执行以下步骤:

    • checkConcurrency:

      确保只有一次针对当前 Amazon EC2 实例执行此运行手册。

    • getTargetInstanceProperties:

      获取目标 Amazon EC2 实例的详细信息。

    • checkIfNitroInstanceTypeIsSupportedInAZ:

      确定目标 Nitro 实例类型是否在与目标 Amazon EC2 实例相同的可用区中受支持。

    • createTestImage:

      AMI从提供的实例创建测试。

    • launchTestInstanceInSameSubnet:

      AMI使用与目标 Amazon EC2 实例相同的配置从测试中启动测试版 Amazon EC2 实例。

    • approvalToStopTargetInstance:

      等待指定委托人批准后停止目标实例。

    • createBackupImage:

      AMI从提供的实例创建用于备份。

    • launchInstanceInSameSubnet:

      AMI使用与源 Amazon EC2 实例相同的配置,从备份中启动一个新的 Amazon EC2 实例。

    • checkAndInstallENADrivers:

      确定 Amazon EC2 实例上增强型联网适配器 (ENA) 驱动程序的可用性,如果缺少则进行安装。

    • checkAndAddNVMEDrivers:

      确定克隆的 Amazon EC2 实例上的 NVMe 驱动程序的可用性,如果缺少则进行安装。

    • checkAndModifyFSTABEntries:

      确定中/etc/fstab是否使用了设备名称,如果找到 UUIDs,则将其替换为其名称。

    • setNitroInstanceTypeForClonedInstance:

      为克隆的亚马逊 EC2 实例设置提供的目标 Amazon EC2 实例类型。

    • approvalForCreatingImageAfterDriversInstallation:

      如果克隆的 Amazon EC2 实例在 Nitro 平台上成功启动,则等待用户批准。

    • createImageAfterDriversInstallation:

      仅当新的 Amazon EC2 实例在 Nitro 平台上成功启动时,才会从新的 Amazon EC2 实例创建映像。

  7. 完成后,请查看 “输出” 部分,了解执行的详细结果。

参考

AWS Systems Manager  自动化