フィードを購読する
Linux 

Convert2RHEL は、Red Hat Enterprise Linux (RHEL) への切り替えを容易にするスクリプトです。概念的にはシンプルです。これは、CentOS Linux または Oracle Linux (近日中に Rocky Linux と Alma Linux も対象となる予定) の非 RHEL パッケージを、署名済みの RHEL パッケージに置き換えるスクリプトです。この記事の執筆時点でサポート対象となっている変換は次のとおりです。

  • CentOS Linux 7.9 から RHEL 7.9
  • CentOS Stream 8 から RHEL 8
  • Rocky 8 から RHEL 8

Red Hat の Convert2RHEL ユーティリティを使用すると、ガイドやサポートを利用しながら、次の 3 つの基本的なステップで変換を実行できます。

  1. お使いの CentOS Linux インスタンスで、正規の RHEL コンテンツへのアクセスを設定します。
  2. さまざまな安全性チェックを実行し、変換を進める方法に関する情報と修復ガイダンスを確認します。
  3. 変換を実行し、すべてのオペレーティング・システム・パッケージを同等の RHEL パッケージに置き換えます。アプリケーションやデータは移行されません。Rocky Linux と CentOS Linux のコンポーネントが、同等の RHEL コンポーネントに置き換えられるだけです。これは、ほぼすべてのパッケージが更新されるマイナーリリースの更新に似ています。かかる時間も同程度です。

この記事では、パブリッククラウド上で動作している CentOS Linux インスタンスからフルサポート対象の RHEL への変換を、Convert2RHEL ツールを使用して容易化する方法を紹介します。一般的な変換パスとしては、次の 2 つのものがあります。

  1. Bring Your Own Subscription (BYOS) モデルを使用して、CentOS Linux インスタンスを Pay As You Go (PAYG) を使用する RHEL にインプレースで変換する。
  2. BYOS モデルを使用して、CentOS Linux インスタンスをインプレースで RHEL に変換する。

サポート対象の変換とは

変換がサポート対象であれば、ツールでエラーが発生することはないと思われます。また、サブスクリプションをお持ちの方は、変換時に Red Hat のテクニカルサポートを受けることができます。

Red Hat は、先日 RHEL 7.9 ELS の 延長を発表 しました。  そのため、CentOS Linux 7 をご利用の場合は、システムを RHEL に変換すれば、新しいリリースに移行する時間を十分に確保できます。

サポート対象外の変換とは

Convert2RHEL では、サポート対象の変換のリスト にない RHEL バージョンのパッケージを置き換えることもできます。お客様がサポート対象外のバージョンから変換する場合、Red Hat は変換自体のサポートは提供しませんが、変換後の RHEL インストール環境はサポートします (変換が機能した場合)。サポートされているすべての RHEL バージョンが、変換先のターゲットバージョンであるわけではありません。ただし、メジャーリリース (8 や 9 など) まで変換してから、標準のアップグレードパスを実行して、サポートされている最新のマイナーリリース にアップグレードすることは可能です。

GCP での Convert2RHEL - Pay As You Go (PAYG)

Convert2RHEL の仕組みにより、ほぼすべての場所で仮想マシン (VM) を CentOS Linux から RHEL に変換することができます。GCP は (ほとんどのクラウドプロバイダーと同様に)、クラウドとのカスタム統合を利用して、フルマネージドのシームレスな仮想マシン環境を実現します。通常は、このような統合により、仮想マシンを完全に変換するためのカスタマイズが必要になります。GCP は、Red Hat Update Infrastructure (RHUI) クライアントを使用して PAYG 機能を提供しています。

クラウド内のすべての RHEL サブスクリプションには、以下の重要なルールが適用されます。

  • お客様は Red Hat の契約条件に署名する必要があります。
  • お客様は、契約条件に同意する前に Red Hat コンテンツへのアクセスを有効にすることはできません。
  • プロバイダーは、ビットへのアクセスが有効になった瞬間からお客様に請求する責任を負います。
  • ビットの配布に関する要件については、プロバイダーが責任を負います。

Red Hat Update Infrastructure (RHUI) を使用して RHEL インスタンスを変換するには、まずインスタンスに適用するスクリプトをダウンロードします。

GCP CentOS Linux 7.9

sudo bash <(curl -s \
https://raw.githubusercontent.com/MCurtisRedhat/CloudCent2RHEL/main/CentOS7toRhel7.sh)

手動変換を実行するには、Convert2RHEL がパッケージを検索しないように、グローバル変数を作成する必要があります (パッケージは後で手動で追加します)。

export CONVERT2RHEL_OUTDATED_PACKAGE_CHECK_SKIP=1

GPG キーとリポジトリ設定をダウンロードします。

sudo curl -o \
/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release https://www.redhat.com/security/data/fd431d51.txt
sudo curl --create-dirs -o \
/etc/rhsm/ca/redhat-uep.pem https://ftp.redhat.com/redhat/convert2rhel/redhat-uep.pem
sudo curl -o \
/etc/yum.repos.d/convert2rhel.repo https://ftp.redhat.com/redhat/convert2rhel/7/convert2rhel.repo
sudo curl -o ./gce-google-rhui-client-el7-x86_64-stable.rpm \
https://packages.cloud.google.com/yum/repos/gce-google-rhui-client-el7-x86_64-stable/Packages/819edaaa38ddbbb792684fa53b6dbbdff8a9ba22aa8e4aca96441df1130f7fb1-google-rhui-client-rhel7-8.0-1.noarch.rpm

システムを更新します。

sudo yum -y update

Convert2RHEL パッケージをインストールします。

sudo yum -y install convert2rhel

カーネルを更新して再起動します。

sudo yum install kernel-3.10.0-1160.102.1.el7 -y && sudo reboot

いくつかのサポートファイルをインストールします。

sudo yum install -y dhclient dhcp-common dhcp-libs gettext gettext-libs mokutil shim-x64

これにより、リポジトリへのアクセスが設定されるため、再起動するまで yum が使用できなくなる可能性があります。

sudo yum install gce-google-rhui-client-el7-x86_64-stable.rpm

ファイルの場所を正しく反映するようにリポジトリを編集します。

sudo sed -i 's/$releasever/7Server/g' /etc/yum.repos.d/rh-cloud.repo

パッケージマネージャーが確実に機能するように、再起動します。

sudo reboot

再起動後、サポートパッケージをインストールし、convert2rhel を実行します。

$ sudo yum install -y dhclient dhcp-common dhcp-libs \
gettext gettext-libs mokutil shim-x64
$ sudo convert2rhel --debug  --enablerepo rhui-rhel-7-server-rhui-rpms --no-rhsm -y
$ sudo restart

GCP CentOS Linux 8 Stream:

sudo bash <(curl \
-s \ https://raw.githubusercontent.com/MCurtisRedhat/CloudCent2RHEL/main/CentOS2RHEL8.sh)

手動変換を実行するには、まずリポジトリ検証キーと設定ファイルをダウンロードします。

sudo curl -o \
/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release https://www.redhat.com/security/data/fd431d51.txt
sudo curl --create-dirs -o \
/etc/rhsm/ca/redhat-uep.pem https://ftp.redhat.com/redhat/convert2rhel/redhat-uep.pem
sudo curl -o \
/etc/yum.repos.d/convert2rhel.repo \
https://ftp.redhat.com/redhat/convert2rhel/8/convert2rhel.repo
sudo curl -o ./google-rhui-client-rhel8-4.0-1.noarch.rpm \
https://packages.cloud.google.com/yum/repos/gce-google-rhui-client-el8-x86_64-stable/Packages/c1afb73c8c5443c696cff1711ebc7427cdaa009df58cb87df418cc5bb1f690e5-google-rhui-client-rhel8-4.0-1.noarch.rpm

システムを更新します。

sudo yum update           

Convert2RHEL パッケージをインストールします。

sudo yum install convert2rhel

必要なサポートサービスをインストールします。

sudo yum install iptables iptables-ebtables iptables-libs krb5-libs \
libnghttp2 python2 python2-libs python2-pip python2-pip-wheel \
python2-setuptools python2-setuptools-wheel python36 qemu-guest-agent \
bash bind-export-libs ca-certificates device-mapper device-mapper-libs \
dmidecode gnupg2 gnupg2-smime gnutls grub2-common grub2-efi-x64 grub2-tools \
grub2-tools-efi grub2-tools-extra grub2-tools-minimal gzip iproute krb5-libs \
libcap libgcrypt libksba libnghttp2 libsemanage libssh libssh-config libtasn1 \
libxml2 nspr openssl openssl-libs pcre2 shim-x64 sqlite-libs vim-common \
vim-enhanced vim-filesystem vim-minimal xz xz-libs

更新して再起動します。

sudo yum install kernel-core-4.18.0-540.el8

更新するものがないというアラートが表示される場合があります。この場合の「カーネル更新」とは、いくつかのシステムファイルをブート設定と単に同期することを指します。

sudo reboot

再起動したら、GCP RHUI クライアントをダウンロードします。これをインストールすると、更新が完了するまで yum の更新が失敗しますが、これは想定される動作です。GCP RHUI のリポジトリをインストールします。

sudo yum install google-rhui-client-rhel8-4.0-1.noarch.rpm

Convert2RHEL が実行対象のシステムを認識できるように、設定ファイルに変更を加えます。

$ sudo sed -i 's/$releasever/8/g' /etc/yum.repos.d/rh-cloud.repo
$ sudo sed -i 's/8/8.6/g' /etc/system-release

convert2rhel を実行します。

sudo convert2rhel --enablerepo rhui-rhel-8-for-x86_64-appstream-rhui-rpms \
--enablerepo rhui-rhel-8-for-x86_64-baseos-rhui-rpms --no-rhsm

GCP Rocky 8

sudo bash <(curl -s \
raw.githubusercontent.com/MCurtisRedhat/CloudCent2RHEL/main/Rocky82RHEL8.sh

上記の手順を実行し、変換が成功したことを確認したら、ライセンスを更新する必要があります。 

ライセンスの更新

現在、ライセンスを自動更新する方法はありません。GCP 以外のコンソールでは、以下を行う必要があります。

  1. GCP Gcloud CLI をインストール します。
  2. Gcloud コンポーネントのベータ版をインストールします。
  3. 仮想マシンを含む GCP プロジェクトを初期化 します。
  4. gcloud compute instances stop <VM_Name> コマンドを使用して仮想マシンを停止します。
  5. CLI で次のように入力します。

    CentOS Linux 8 の場合:

    gcloud beta compute disks update <your vm bootdisk name> \
    --update-user-licenses=https://www.googleapis.com/compute/v1/projects/rhel-cloud/global/licenses/rhel-8-server

    CentOS Linux 7 の場合:

    gcloud beta compute disks update <your vm bootdisk name> \
    --update-user-licenses=https://www.googleapis.com/compute/v1/projects/rhel-cloud/global/licenses/rhel-7-server

  6. コマンド gcloud compute instances start <VM_Name> を使用してサーバーを起動します。

GCP での Convert2RHEL - Bring Your Own Subscription (BYOS)

まず検討すべきことは、RHEL サブスクリプションのお支払い方法です。方法はいくつかあります。

1 つ目の方法は、RHEL の年間サブスクリプションです。これは Red Hat から直接、またはリセラーから入手できます。

RHEL サブスクリプションをお持ちの場合

まず、Red Hat Hybrid Cloud Console にログインし、サブスクリプションを表示します。

centos-to-rhel-in-google-cloud

 

最適な変換プロセスを実現するために、Simple Content Access (SCA) を必ず有効にしてください。  有効でない場合は、変換する CentOS Linux インスタンスを登録するときに、使用するサブスクリプションを手動で指定する必要があります。

SCA を使用している場合は、All Apps & Services > Remote Host Configuration > Activation Keys に移動します。そこで my_conversions などの名前付きアクティベーションキーを作成し、後で Convert2RHEL ユーティリティに提供することができます。SCA とアクティベーションキーを使用しない場合は、ユーザー名とパスワードを使用してサブスクリプションマネージャー・ツールに登録する手順を実行して、特定のサブスクリプションを割り当てる必要があります。  SCA とアクティベーションキーを使用したほうが簡単なため、そちらを推奨します。

centos-to-rhel-in-google-cloud-2

 

変換の開始

Organization ID (Activation Keys ページ で確認できます) と前のステップで作成したアクティベーションキーを使用して Convert2RHEL ユーティリティを有効化し、システムを登録して変換を実行できるようにします。

  1. 予期しない問題が発生した場合に備えて、ボリュームのバックアップを作成することを強く推奨します。  GCP 内では、関連付けられた Elastic BlockStorage (EBS) ボリュームのスナップショットを取得することでバックアップを作成できます。
  2. RPM ベースの Linux ディストリビューションから RHEL への変換 に関するドキュメントを確認して、サポートマトリックス、準備、その他の重要な詳細を確認します。
  3. SSH または Alicloud ターミナルを使用して CentOS Linux インスタンスにログインし、シェルプロンプトにアクセスします。sudo コマンドを使用する権限、または root スーパーユーザーになる権限が必要です。
  4. 既存の OS をサポート対象の最新バージョンに更新し、エラータ更新をインストールします。最新の更新とカーネルが適用されるように、インスタンスを再起動します。

    sudo yum -y update

  5. 証明書をコピーして、コンテンツが Red Hat によって署名されていることを検証します。

    $ sudo curl -o /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release \
    https://www.redhat.com/security/data/fd431d51.txt
    $ sudo curl --create-dirs -o /etc/rhsm/ca/redhat-uep.pem \
    https://ftp.redhat.com/redhat/convert2rhel/redhat-uep.pem

    CentOS Linux 7 の場合

    $ sudo curl -o /etc/yum.repos.d/convert2rhel.repo \
    https://ftp.redhat.com/redhat/convert2rhel/7/convert2rhel.repo

    CentOS Linux 8 の場合

    $ sudo curl -o /etc/yum.repos.d/convert2rhel.repo \
    https://ftp.redhat.com/redhat/convert2rhel/8/convert2rhel.repo
    $ sudo yum -y install convert2rhel

  6. アクティベーションキーを含む設定ファイルを作成し、ファイルを .ini ファイル形式で保存します。  これは、機密情報の漏洩を防ぐために、アクティベーションキーとパスワードを扱う際に推奨される方法です。手順が完了したら、ファイルを削除してください。次のテキストを /etc/convert2rhel.ini ファイルに追加します。

    [subscription_manager]
    activation_key = <activation_key>

  7. convert2rhel を実行します。

    $ sudo convert2rhel --org <Organization_ID> --config-file <config_file_name>

  8. 変換後、Red Hat Insights クライアントに登録して、Red Hat Hybrid Cloud Console で追加の管理機能を有効にすることを推奨します。

    $ sudo insights-client --register

  9. 上記ドキュメントの残りのガイドを実行すると、システムを再起動し、純正の RHEL システムとして起動する準備が整います。Red Hat Insights に登録した場合は、システムが Inventory に表示されます。

クラウドベースの自動登録

もう 1 つの方法は PAYG を使用することです。自動登録、Simple Content Access (SCA)、および Subscription Watch を有効にすることにより、選択したパブリッククラウド環境で動作している Red Hat ワークロードのフリートレベルの登録が可能になります。これにより、Red Hat のコンテンツ、分析、ツールに自動接続してフルアクセスし、複数のハイブリッドクラウド環境全体でフリートを管理できるようになります。次の 3 つのステップを実行するだけです。

  1. クラウドベースの自動登録 の簡単な手順を実行し、Red Hat アカウントとクラウド・パートナー・アカウント間のソースのマッピングを設定します。
  2. Subscription Watch を有効にします (任意ですが推奨されます)。
  3. 上記の BYOS のセクションと同じ手順に従って、インプレースで RHEL に変換します。

実際に試してみる

Red Hat サブスクリプションのお支払い方法が BYOS でも PAYG でも、Red Hat のサポートにより、非常に包括的で最適なサービスを利用できます。

この変換プロセスが Convert2RHEL ツールでどれだけ簡単になるかを実際に体験するために、自習型ラボ のチュートリアルを試して、プロセスを理解することをお勧めします。


執筆者紹介

In the cloud business for 15+ years, Linux Nerd, GCP Nerd

Read full bio
UI_Icon-Red_Hat-Close-A-Black-RGB

チャンネル別に見る

automation icon

自動化

テクノロジー、チームおよび環境に関する IT 自動化の最新情報

AI icon

AI (人工知能)

お客様が AI ワークロードをどこでも自由に実行することを可能にするプラットフォームについてのアップデート

open hybrid cloud icon

オープン・ハイブリッドクラウド

ハイブリッドクラウドで柔軟に未来を築く方法をご確認ください。

security icon

セキュリティ

環境やテクノロジー全体に及ぶリスクを軽減する方法に関する最新情報

edge icon

エッジコンピューティング

エッジでの運用を単純化するプラットフォームのアップデート

Infrastructure icon

インフラストラクチャ

世界有数のエンタープライズ向け Linux プラットフォームの最新情報

application development icon

アプリケーション

アプリケーションの最も困難な課題に対する Red Hat ソリューションの詳細

Original series icon

オリジナル番組

エンタープライズ向けテクノロジーのメーカーやリーダーによるストーリー