AWS Builder Center: Learn, Build and Connect with builders in the AWS community
AWS Builder Center is the official home for builders on AWS. Share and read what others are working on, follow people who inspire you, explore training and workshops, and find tools to support what you're building.
如何将我的 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 常见问题解答)
相关内容
AWS 官方已更新 10 个月前