工作有需要幫客戶將 CentOS 轉換到 Red Hat Enterprise Linux,試驗了一下。這個轉換是有條件的,必須要滿足前置條件,才能順利做轉換。
我用的環境是 CentOS 8.3 ,用以下的 playbook 來安裝 Red Hat 所提供的 convert2rhel 工具,先新增檔案,命名為 install-convert2rhel.yml ,然後把下面的內容貼進去。
---
- name: Convert CentOS to RHEL
hosts: all
become: yes
tasks:
- name: Get GPG key
get_url:
url: https://www.redhat.com/security/data/fd431d51.txt
dest: /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
mode: '0440'
- name: Get repo
get_url:
url: https://ftp.redhat.com/redhat/convert2rhel/8/convert2rhel.repo
dest: /etc/yum.repos.d/convert2rhel.repo
mode: '0440'
- name: Get convert2rhel
yum:
name: convert2rhel
state: latest
接著執行:ansible-playbook -i <your_ip>, -u root -k install-convert2rhel.yml
目的主機內就有 convert2rhel 指令了,先依照說明來執行看看
convert2rhel --username <redhat_account> --password <redhat_password> -a
執行結果會說需要把 CentOS 升級到 7.9 或是 8.4 才可以進行轉換,所以用 yum update -y
將 CentOS 8.3 升級到 8.4
升級完成,重新開機,再來執行一次。我這次是遇到 Python 處理編碼發生錯誤,改用
LANG=C convert2rhel --username <redhat_account> --password <redhat_password> -a
接著可以繼續往下了,依照指示回答問題以後,就順利轉換到 RHEL 了。(懶得回答可以加上 -y)
用 man convert2rhel
可以看到使用說明,講的還蠻清楚的。指令有提供了 –disablerepo /
–enablerepo 可以關閉或啟用可能影響轉換的 repo,也可以使用 –no-rpm-va 來跳過檢查,也有提供
–activationkey 來支援 Red Hat Satellite,也可以使用 –no-rhsm 來避免註冊到 Red Hat 。
我自己是覺得使用這類的工具其實蠻需要經驗,如果主機上的軟體套件很單純的話,就還好,如果是有引用到第三方的 repo,可能就需要耐心來做狀況排除。同時,也需要事後的檢查,來確保上面的服務跟轉移前一樣。
沒有留言:
張貼留言