跳至内容

如何将我的 RHEL BYOL EC2 实例许可证迁移至 RHUI 许可证?

3 分钟阅读
0

我有一个运行 Red Hat Enterprise Linux (RHEL) 且使用自带许可 (BYOL) 的 Amazon Elastic Compute Cloud (Amazon EC2) 实例。我想将其迁移至使用 Red Hat Update Infrastructure (RHUI) 来进行更新和修补操作。

解决方法

**重要事项:**在停止和启动实例之前,请执行以下操作:

**注意:**当停止或启动某个实例时,该实例的公共 IP 地址将发生变化。最佳实践是使用弹性 IP 地址而不是公共 IP 地址将外部流量路由到您的实例。如果您使用的是 Amazon Route 53,则在公共 IP 地址发生变化时可能需要更新 Route 53 DNS 记录

要将您的实例迁移至 RHUI 许可证,请完成以下步骤:

  1. 如果您在实例上使用代理,请停用实例元数据服务 (IMDS) IP 地址的代理

  2. 要确定您的实例使用的是 BYOL 许可证还是 AWS 许可证,请根据您的 IMDS 版本运行以下命令:
    IMDSv1:

    curl http://169.254.169.254/latest/dynamic/instance-identity/document 2>/dev/null | grep billingProducts

    IMDSv2:

    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,

    **注意:**如果 billingProductsnull,则实例使用的是 BYOL。

  3. 使用 AWS Marketplace 亚马逊机器映像 (AMI) 启动与原始实例相同 RHEL 版本的新 RHEL 实例。确保使用与原始实例相同的可用区,然后选择类似的实例类型。

  4. 运行以下命令检查实例的计费代码,然后验证新实例是否使用 RHUI:

    curl http://169.254.169.254/latest/dynamic/instance-identity/document 2>/dev/null | grep billingProducts
     "billingProducts" : [ "bp-6fa54006" ],
  5. 运行以下命令,以验证新实例是否安装了 RHUI 客户端软件包:

     sudo rpm -qa | grep rhui

    输出示例:

    $ sudo rpm -qa | grep rhui
    rh-amazon-rhui-client-4.0.4-1.el8.noarch
  6. 运行以下命令之一,以在新实例上下载(但不安装)RHUI 客户端软件包的 RPM 文件:

    sudo yum install --downloadonly --downloaddir=/tmp rh-amazon-rhui-client -y

    -或-

    sudo yumdownloader --downloaddir=/tmp rh-amazon-rhui-client
  7. 运行以下命令,以验证您是否在新实例上正确下载了 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
  8. 运行以下命令之一,以将 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/
  9. 运行以下命令,以从原始实例中删除现有的 RHUI 配置和软件包:

    sudo yum remove $(rpm -qa | grep rhui) -y
  10. 运行以下命令,以使用复制的 RPM 文件在原始实例上安装 RHUI 客户端:

sudo yum install /tmp/rh-amazon-rhui-client-*.rpm -y
  1. 运行以下命令,以验证您是否在原始实例上正确安装了软件包:
sudo rpm -qa | grep rhui
  1. 打开 Amazon EC2 控制台,然后记下您的原始实例的网络配置,例如 IP 地址、弹性 IP 地址和安全组。您可能需要在新实例中创建这些设置。
  2. 停止新实例和原始实例
  3. 从两个实例中分离所有 Amazon EBS 卷。记下原始实例上每个卷的设备名称或 ID。
  4. 将原始实例的卷附加到新实例
    **注意:**请使用与原始实例上卷相同的设备名称:
  5. 启动新实例
  6. 连接到新实例,然后运行以下命令以验证您是否可以获取计费代码:
curl http://169.254.169.254/latest/dynamic/instance-identity/document 2>/dev/null | grep billingProducts
"billingProducts" : [ "bp-6fa54006" ],
  1. 运行以下命令以验证存储库配置是否正确:
sudo yum clean all
sudo yum repolist
  1. 如果您不再需要原始实例的分离卷,请将其删除。在验证更新时,您可以将其保留为备份。

对问题进行故障排除

如果交换卷后实例无法启动,请验证您是否已将卷附加到正确的设备名称。如果仍然遇到问题,请创建根卷的快照并重复解决步骤。

如果您无法访问存储库,请运行以下命令以验证您是否安装了 RHUI 客户端:

rpm -qa | grep rhui

此外,请检查您与元数据服务器的网络连接。

相关信息

Migrate RHEL BYOL systems to AWS License-Included instances by using AWS Application Migration Service(使用 AWS Application Migration Service 将 RHEL BYOL 系统迁移到包含 AWS 许可证的实例)

Red Hat Enterprise Linux on Amazon EC2 FAQs(Amazon EC2 上的 Red Hat Enterprise Linux 常见问题解答)

AWS 官方已更新 9 个月前