Ongoing service disruptions
For the most recent update on ongoing service disruptions affecting the AWS Middle East (UAE) Region (ME-CENTRAL-1), refer to the AWS Health Dashboard. For information on AWS Service migration, see How do I migrate my services to another region?
如何将我的 RHEL BYOL EC2 实例许可证迁移至 RHUI 许可证?
我有一个运行 Red Hat Enterprise Linux (RHEL) 且使用自带许可 (BYOL) 的 Amazon Elastic Compute Cloud (Amazon EC2) 实例。我想将其迁移至使用 Red Hat Update Infrastructure (RHUI) 来进行更新和修补操作。
解决方法
**重要事项:**在停止和启动实例之前,请执行以下操作:
- 创建您的 Amazon Elastic Block Store (Amazon EBS) 卷的快照。
**注意:**如果您的实例由实例存储支持,或者具有包含数据的实例存储卷,则 Amazon EC2 会在实例停止时删除这些数据。 - 完成解决步骤后,暂时将该实例从其 Amazon EC2 Auto Scaling 组中移除。
**注意:**如果您停止 Amazon EC2 Auto Scaling 组中的实例,则可以根据缩容保护设置终止该实例。使用 Amazon EMR、AWS CloudFormation 或 AWS Elastic Beanstalk 启动的实例可能位于 Auto Scaling 组中。 - 将实例关闭行为设置为 Stop(停止),以确保实例在您停止时不会终止。
**注意:**当停止或启动某个实例时,该实例的公共 IP 地址将发生变化。最佳实践是使用弹性 IP 地址而不是公共 IP 地址将外部流量路由到您的实例。如果您使用的是 Amazon Route 53,则在公共 IP 地址发生变化时可能需要更新 Route 53 DNS 记录。
要将您的实例迁移至 RHUI 许可证,请完成以下步骤:
-
如果您在实例上使用代理,请停用实例元数据服务 (IMDS) IP 地址的代理。
-
要确定您的实例使用的是 BYOL 许可证还是 AWS 许可证,请根据您的 IMDS 版本运行以下命令:
IMDSv1:curl http://169.254.169.254/latest/dynamic/instance-identity/document 2>/dev/null | grep billingProductsIMDSv2:
curl --noproxy '*' -w "\n" -s \ -H "X-aws-ec2-metadata-token: \ $(curl --noproxy '*' -s -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 300")" \ http://169.254.169.254/latest/dynamic/instance-identity/document \ | grep billingProducts输出示例:
$ curl http://169.254.169.254/latest/dynamic/instance-identity/document 2>/dev/null | grep billingProducts "billingProducts" : null,**注意:**如果 billingProducts 为 null,则实例使用的是 BYOL。
-
使用 AWS Marketplace 亚马逊机器映像 (AMI) 启动与原始实例相同 RHEL 版本的新 RHEL 实例。确保使用与原始实例相同的可用区,然后选择类似的实例类型。
-
运行以下命令检查实例的计费代码,然后验证新实例是否使用 RHUI:
curl http://169.254.169.254/latest/dynamic/instance-identity/document 2>/dev/null | grep billingProducts "billingProducts" : [ "bp-6fa54006" ], -
运行以下命令,以验证新实例是否安装了 RHUI 客户端软件包:
sudo rpm -qa | grep rhui输出示例:
$ sudo rpm -qa | grep rhui rh-amazon-rhui-client-4.0.4-1.el8.noarch -
运行以下命令之一,以在新实例上下载(但不安装)RHUI 客户端软件包的 RPM 文件:
sudo yum install --downloadonly --downloaddir=/tmp rh-amazon-rhui-client -y-或-
sudo yumdownloader --downloaddir=/tmp rh-amazon-rhui-client -
运行以下命令,以验证您是否在新实例上正确下载了 RPM 软件包:
ls -l /tmp | grep rh-amazon-rhui-client -rw-r--r--. 1 root root 43680 Mar 4 19:42 rh-amazon-rhui-client-4.0.5-1.el8.noarch.rpm -
运行以下命令之一,以将 RHUI 客户端的 RPM 文件从新实例复制到原始实例:
scp /tmp/rh-amazon-rhui-client-*.rpm ec2-user@BYOL-instance-ip:/tmp/-或-
rsync -avz /tmp/rh-amazon-rhui-client-*.rpm ec2-user@BYOL-instance-ip:/tmp/ -
运行以下命令,以从原始实例中删除现有的 RHUI 配置和软件包:
sudo yum remove $(rpm -qa | grep rhui) -y -
运行以下命令,以使用复制的 RPM 文件在原始实例上安装 RHUI 客户端:
sudo yum install /tmp/rh-amazon-rhui-client-*.rpm -y
- 运行以下命令,以验证您是否在原始实例上正确安装了软件包:
sudo rpm -qa | grep rhui
- 打开 Amazon EC2 控制台,然后记下您的原始实例的网络配置,例如 IP 地址、弹性 IP 地址和安全组。您可能需要在新实例中创建这些设置。
- 停止新实例和原始实例。
- 从两个实例中分离所有 Amazon EBS 卷。记下原始实例上每个卷的设备名称或 ID。
- 将原始实例的卷附加到新实例。
**注意:**请使用与原始实例上卷相同的设备名称: - 启动新实例。
- 连接到新实例,然后运行以下命令以验证您是否可以获取计费代码:
curl http://169.254.169.254/latest/dynamic/instance-identity/document 2>/dev/null | grep billingProducts "billingProducts" : [ "bp-6fa54006" ],
- 运行以下命令以验证存储库配置是否正确:
sudo yum clean all sudo yum repolist
- 如果您不再需要原始实例的分离卷,请将其删除。在验证更新时,您可以将其保留为备份。
对问题进行故障排除
如果交换卷后实例无法启动,请验证您是否已将卷附加到正确的设备名称。如果仍然遇到问题,请创建根卷的快照并重复解决步骤。
如果您无法访问存储库,请运行以下命令以验证您是否安装了 RHUI 客户端:
rpm -qa | grep rhui
此外,请检查您与元数据服务器的网络连接。
相关信息
Red Hat Enterprise Linux on Amazon EC2 FAQs(Amazon EC2 上的 Red Hat Enterprise Linux 常见问题解答)
