**背景與重要注意事項**
升級 RHEL 系統是獲取最新功能、安全更新和支援的關鍵任務。研究表明,使用 Leapp 工具進行原地升級是可行的方法,但需注意以下風險:
– 升級過程會導致 VM 的資料平面與控制平面斷開,影響 Azure 功能(如自動來賓修補、自動 OS 映像升級、熱修補和 Azure 更新管理器)。
– 為利用這些功能,建議建立新 VM 而非原地升級,尤其在依賴這些功能的場景中。
– 本文適用於 Linux VM,特別針對 RHEL PAYG 映像。
> **注意**:Red Hat Update Infrastructure (RHUI) 僅支援 PAYG 映像;若使用自訂或黃金映像(亦稱 BYOS),需將系統附加到 Red Hat Subscription Manager (RHSM) 或 Satellite 以接收更新。本文聚焦 PAYG 場景。
—
### 先決條件
升級前需確保以下條件:
– **備份資料**:備份 Linux VM 或 OS 磁碟快照,防止資料遺失。
– **磁碟空間**:確保 `/var/lib/leapp` 有足夠空間,建議至少 2-5 GB 可用。
– **存取權限**:設定對序列主控台的存取權限,以避免網路中斷影響升級。
– **權限要求**:所有命令需以 root 權限執行。
—
### 準備香港 VPS
以下步驟以從 RHEL 7.9 升級到 RHEL 8.x 為例,RHEL 8.x 到 RHEL 9.x 的過程類似,但需調整儲存庫和目標版本。支援的升級路徑包括:
| 來源 OS 版本 | 目標版本 | 支援終止日期 |
|————–|—————|———————-|
| RHEL 7.9 | RHEL 8.8 | 2025 年 5 月 31 日 (EUS) |
| RHEL 7.9 | RHEL 8.10 (預設) | 2028 年 6 月 30 日 |
—
### 具體步驟
1. **解除版本鎖定**
– 若香港 VPS 鎖定為次要版本,需刪除版本鎖。參考文件瞭解如何切換回非 EUS 模式。
“`bash
sudo yum versionlock clear
“`
2. **啟用 RHUI 儲存庫並安裝套件**
“`bash
sudo yum-config-manager –enable rhui-microsoft-azure-rhel7
sudo yum -y install rhui-azure-rhel7
sudo yum-config-manager –enable rhui-rhel-7-server-rhui-extras-rpms
sudo yum -y install leapp-rhui-azure
“`
3. **安裝 Leapp 工具**
“`bash
sudo yum install leapp-upgrade
“`
4. **更新所有套件並重新啟動**
“`bash
sudo yum update
sudo reboot
“`
5. **預升級準備**
– 執行 `leapp preupgrade` 前,暫時停用防毒軟體。
– 停用任何組態管理系統(如 Puppet, Ansible),以避免干擾。
—
#### Leapp 預升級過程
預升級報告會標示潛在問題並提供解決方案。
– 執行檢查命令:
“`bash
sudo leapp preupgrade –target <目標_OS_版本> –no-rhsm # 例如 –target 8.10
“`
– 檢查 `/var/log/leapp/leapp-report.txt`,解決所有抑制問題 (inhibitors)。
—
#### Leapp 升級過程
當預升級報告無錯誤/抑制問題時(綠色/黃色輸出)繼續。
> **關鍵**:透過序列主控台執行以避免 SSH 中斷。
“`bash
sudo leapp upgrade –target <目標_OS_版本> –no-rhsm
“`
– 新增 `–reboot` 自動重新啟動,或手動執行:
“`bash
sudo reboot
“`
—
#### 驗證升級
– 檢查 OS 版本:
“`bash
sudo cat /etc/redhat-release
“`
– 驗證核心版本:
“`bash
uname -r
“`
– 確認儲存庫:
“`bash
sudo dnf repolist
“`
—
#### 升級後清理任務
1. 移除套件排除設定:
“`bash
sudo dnf config-manager –save –setopt exclude=”
“`
2. 移除殘留的 RHEL 7 套件:
“`bash
sudo dnf remove $(rpm -qa | grep \.el[67] | grep -vE ‘gpg-pubkey|libmodulemd|katello-ca-consumer’)
“`
3. 清除舊核心的弱模組:
“`bash
sudo [ -x /usr/sbin/weak-modules ] && sudo /usr/sbin/weak-modules –remove-kernel <核心版本>
“`
4. 刪除舊核心開機項目:
“`bash
sudo /bin/kernel-install remove <核心版本> /lib/modules/<核心版本>/vmlinuz
“`
5. 清除殘留 RHEL 7 套件:
“`bash
sudo yum remove kernel-workaround $(rpm -qa | grep \.el7 | grep -vE ‘gpg-pubkey|libmodulemd|katello-ca-consumer’)
“`
6. 移除 Leapp 相依套件:
“`bash
sudo yum remove leapp-deps-el8 leapp-repository-deps-el8 leapp-rhui-azure
“`
7. 刪除空目錄:
“`bash
sudo rm -r /lib/modules/*el7*
“`
8. (選用) 清除升級資料:
“`bash
sudo rm -rf /var/log/leapp /root/tmp_leapp_py3 /var/lib/leapp
“`
—
#### 疑難排解與常見問題
– **`subscription-manager` 錯誤**:PAYG 映像需在 Leapp 命令新增 `–no-rhsm`。
– **RHEL 8 使用者空間套件失敗**:檢查目標儲存庫 (RHUI/RHSM) 是否啟用。
– **root 遠端登入問題**:若報告提示相關警告,需確保 SSH 允許 root 登入。
– **一般錯誤**:檢查 `/var/log/leapp/leapp-report.txt` 與 `/var/log/leapp/leapp-upgrade.log`。
—
#### 補充資訊
– **SAP 工作負載**:SAP-HANA/SAP-APPS PAYG VM 有額外要求,請參考專屬文件。
– **Leapp 限制**:
– 不支援全碟/分割區加密
– 不支援網路多重路徑或 FCoE 儲存
– **測試建議**:請先在非生產環境(如香港 VPS)驗證升級。
—
> 詳細疑難排解請參閱 Red Hat OS 升級文件。