

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

# `AWSSupport-CloneXenEC2InstanceAndMigrateToNitro`
<a name="automation-awssupport-clonexenec2instanceandmigratetonitro"></a>

 **描述** 

[这两InstanceAndMigrateToNitro本运行手册克隆、准备和迁移克隆的亚马逊弹性计算云 (Amazon EC **AWSSupport-CloneXenEC2**) Linux 实例，该实例目前在亚马逊 EC2 Xen 平台上运行，使其在亚马逊 EC2 Nitro 平台上运行。](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances)这种自动化分为三个不同的分支：
+ **初步检查**：评估继续迁移的所有先决条件，包括检查目标 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 定价](https://aws.amazon.com/ec2/pricing/)和[亚马逊 EBS 定价](https://aws.amazon.com/ebs/pricing/)。

**重要**  
 **先决条件**   
目标 Amazon EC2 实例需要对存储库进行出站访问才能安装驱动程序和依赖项`kernel-devel`，例如`gcc`、`patch`、`rpm-build`、`wget`、`dracut`、、`make`、`linux-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 实例的黄金镜像。

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-CloneXenEC2InstanceAndMigrateToNitro) 

**文档类型**

自动化

**所有者**

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. [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-CloneXenEC2InstanceAndMigrateToNitro/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-CloneXenEC2InstanceAndMigrateToNitro/description)在 Systems Manager 的 “文档” 下导航至。

1. 选择 **`Execute automation`**。

1. 对于输入参数，请输入以下内容：
   + **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`

1. 选择**执行**。

1. 自动化启动。

1. 文档将执行以下步骤：
   + **`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 实例创建映像。

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

**参考**

AWS Systems Manager  自动化
+ [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-CloneXenEC2InstanceAndMigrateToNitro/description)
+ [运行自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-working-executing.html)
+ [设置自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html)
+ [Support 自动化工作流程](https://aws.amazon.com/premiumsupport/technology/saw/)