星期一, 9月 06, 2021

convert2rhel

工作有需要幫客戶將 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,可能就需要耐心來做狀況排除。同時,也需要事後的檢查,來確保上面的服務跟轉移前一樣。

沒有留言: