本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWSSupport-CloneXenEC2InstanceAndMigrateToNitro
描述
-
初步检查:评估继续迁移的所有先决条件,包括检查目标 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 定价
重要
先决条件
目标 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 实例的黄金镜像。
文档类型
自动化
所有者
Amazon
平台
Linux
参数
所需的 IAM 权限
AutomationAssumeRole 参数需要执行以下操作才能成功使用运行手册。
autoscaling:DescribeAutoScalingInstancesec2:CreateImageec2:CreateTagsec2:DescribeImagesec2:DescribeInstanceAttributeec2:DescribeInstancesec2:DescribeInstanceStatusec2:DescribeInstanceTypeOfferingsec2:DescribeInstanceTypesec2:DeregisterImageec2:ModifyInstanceAttributeec2:RunInstancesec2:StartInstancesec2:StopInstancesec2:TerminateInstancesiam:PassRolesns:Publishssm:DescribeAutomationExecutionsssm:DescribeInstanceInformationssm: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": "*" } ] }
说明
按照这些步骤对自动化进行配置:
-
AWSSupport-CloneXenEC2InstanceAndMigrateToNitro在 Systems Manager 的 “文档” 下导航至。 -
选择
Execute automation。 -
对于输入参数,请输入以下内容:
-
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
-
-
选择执行。
-
自动化启动。
-
文档将执行以下步骤:
-
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 实例创建映像。
-
-
完成后,请查看 “输出” 部分,了解执行的详细结果。
参考
AWS Systems Manager 自动化