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 授權?
我有一個 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體,它執行帶有自備授權 (BYOL) 的 Red Hat Enterprise Linux (RHEL)。我想將其遷移到使用 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 群組中。 - 將執行個體關閉行為設定為停止,以確保執行個體在您停止時不會終止。
**注意:**當您停止和啟動執行個體時,該執行個體的公有 IP 位址也會變更。最佳做法是使用彈性 IP 位址而不是公用 IP 位址,將外部流量路由到執行個體。如果您使用 Amazon Route 53,則可能需要在公有 IP 位址變更時更新 Route 53 DNS 記錄。
若要將您的執行個體移轉到 RHUI 授權,請完成以下步驟:
-
如果您在執行個體上使用 Proxy,請停用執行個體中繼資料服務 (IMDS) IP 位址的 Proxy。
-
若要確定您的執行個體是否使用 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 Amazon Machine Image (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
另外,請檢查您與中繼資料伺服器的網路連線。
相關資訊
使用 AWS Application Migration Service 將 RHEL BYOL 系統遷移到包含 AWS 授權的執行個體
相關內容
已提問 4 年前
已提問 3 年前
已提問 3 年前
AWS 官方已更新 10 個月前