Convert2RHEL は、Red Hat Enterprise Linux (RHEL) に類似したオペレーティングシステム、または Red Hat Enterprise Linux (RHEL) から派生したオペレーティングシステム (CentOS Linux や Oracle Linux など) を変換する Red Hat ユーティリティです。サポートされているオペレーティングシステムの完全なリストについては、 このドキュメントをお読みください。詳細については、Terry Bowling のブログ記事 (Oracle Linux に関する記事はこちら) を参照してください。

Red Hat Satellite 6.10 では、まず Convert2RHEL の一括操作機能が導入されました。これについては、こちらの記事で説明しています。Satellite 6.11 は、これらの機能を次の 2 つの面で発展させています。

  1. Ansible ロールにより、Convert2RHEL の Satellite サーバーの設定/準備を自動化

  2. Ansible Playbook により、ホストの変換を自動化

以下のフローチャートは、Satellite 6.11 で Convert2RHEL の一括操作を実行するために必要なタスクの概要を示しています。

 

Flowchart of tasks required to perform a bulk Convert2RHEL operation

準備ができたら、Centos/Oracle Linux ホストを Satellite に登録し、ホストを RHEL に変換するジョブをスケジュールします。

この Ansible ロールは、個別の Ansible サーバーを使用して Satellite サーバーに手動で適用できることに注意してください。

ここでは、この新しい自動化の実装に必要なすべての手順について詳しく説明します。

Satellite サーバーを準備する

まず、こちらの手順に従って、付属の Ansible Roles をインポートします。

まず、[Configure] > [Roles] に移動します。

 

first go to Configure > Roles

[Import…] をクリックします。

 

Click on Import

[Select All]、[Submit] の順にクリックします。

 

Click on Select All and then Submit

次に、Ansible ロールを Satellite サーバーで実行する前に、変数を作成する必要があります。これらの変数を使用して、Satellite サーバーで Convert2RHEL の一括操作をどのように構成するかを Ansible ロールに指示します。その内容には、サブスクリプションのマニフェスト、組織、場所、管理者の資格情報などの指定が含まれます。

Ansible ロールの変数を設定する最も簡単で迅速な方法は、Satellite サーバーで hammer コマンドラインユーティリティを使用することです。Ansible ロールの変数は、Satellite の Web UI を使用して設定することもできます。

この Satellite サーバーでは次の変数を定義しています。

変数

satellite_rhel_wait_for_syncs

true

satellite_manifest_path

/usr/share/satellite/manifest_satellite_20220815T193102Z.zip

satellite_organization

Acme Org

satellite_password

Ha ha no you don’t

satellite_username

myee

satellite_server_url

https://ip-172-31-29-4.us-west-1.compute.internal

satellite_validate_certs

true

satellite_content_rhel_enable_rhel7

true

satellite_content_rhel_enable_rhel8

true

次に、hammer ユーティリティを使用して Ansible ロールの変数を作成する方法を示します。

satellite_rhel_wait_for_syncs

この Ansible ロールは、一括 Convert2RHEL 操作の実行に必要なリポジトリーを設定し、同期します。 satellite_rhel_wait_for_syncs 変数は、リポジトリとの同期が完了するまで待機するように指示します。

rootとしてログインし、Satellite サーバーのコマンドラインインタフェースに次のように入力します。

hammer ansible variables create --location "Vancouver" --organization "Acme Org" --ansible-role redhat.satellite.convert2rhel --variable satellite_rhel_wait_for_syncs --variable-type boolean --default-value false --override true

satellite_manifest_path

Ansible ロールが実行されると、サブスクリプションのマニフェストがアップロードされ、すべての新しいホストに適切なライセンスが付与されます。有効なマニフェストをすでにアップロードしている場合は、再度アップロードする必要があります。

hammer ansible variables create --location "Vancouver" --organization "Acme Org" --ansible-role redhat.satellite.convert2rhel --variable satellite_manifest_path --variable-type string --default-value "/usr/share/satellite/manifest_satellite_20220815T193102Z.zip" --override true

satellite_organization/usr

この例で使用する Satellite 組織は「Acme Org」です。

hammer ansible variables create --location "Vancouver" --organization "Acme Org" --ansible-role redhat.satellite.convert2rhel --variable satellite_organization --variable-type string --default-value "Acme Org" --override true

satellite_password

Ansible ロールには Satellite 管理者の資格情報が必要です。ここにパスワードを入力します。

hammer ansible variables create --location "Vancouver" --organization "Acme Org" --ansible-role redhat.satellite.convert2rhel --variable satellite_password --variable-type string --default-value "YOUR_ADMIN_PASSWORD" --override true

パスワードを使用しないようにするには、代わりに Personal Access Tokens を設定します。

 

To avoid using passwords you can set up Personal Access Tokens instead

satellite_username

ここに管理者のユーザー名を入力します。

hammer ansible variables create --location "Vancouver" --organization "Acme Org" --ansible-role redhat.satellite.convert2rhel --variable satellite_username --variable-type string --default-value "myee" --override true

satellite_server_url

Satellite サーバーの URL は、ホストが curl ユーティリティを使用してアクセスするために必要とする URL です。

hammer ansible variables create --location "Vancouver" --organization "Acme Org" --ansible-role redhat.satellite.convert2rhel --variable satellite_server_url --variable-type string --default-value "https://ip-172-31-29-4.us-west-1.compute.internal" --override true

satellite_validate_certs

この値は true に設定する必要があります。

hammer ansible variables create --location "Vancouver" --organization "Acme Org" --ansible-role redhat.satellite.convert2rhel --variable satellite_validate_certs --variable-type boolean --default-value true --override true

satellite_content_rhel_enable_rhel7

この変数は、CentOS 7 (または Oracle) ホストから RHEL7 への変換を有効にするために RHEL7 コンテンツを同期するよう、Ansible ロールに指定します。RHEL7 のコンテンツを同期しない場合は、この変数で false を指定します。

hammer ansible variables create --location "Vancouver" --organization "Acme Org" --ansible-role redhat.satellite.convert2rhel --variable satellite_content_rhel_enable_rhel7 --variable-type boolean --default-value true --override true

satellite_content_rhel_enable_rhel8

この変数は、CentOS 8 (または Oracle) ホストから RHEL8 への変換を有効にするために RHEL8 コンテンツを同期するよう、Ansible ロールに指定します。RHEL8 のコンテンツを同期しない場合は、この変数で false を指定します。

hammer ansible variables create --location "Vancouver" --organization "Acme Org" --ansible-role redhat.satellite.convert2rhel --variable satellite_content_rhel_enable_rhel8 --variable-type boolean --default-value true --override true

変数が正しく設定されているかどうかは、Web UI で確認できます。サブメニューで Ansible の [Variables] に移動します。

 

Go to the Ansible Variables sub-menu

作成した変数が表示されるまでページを進めます。

 

Ansible variables

次に、Satellite が自身に対するリモート実行ジョブを実行できるようにする必要があります。

すでに Satellite サーバーに対してリモート実行ジョブを実行できるようにしてある場合、この手順は不要です。

root として Satellite サーバーにログインし、次のコマンドを実行します。

satellite-installer \ 
--foreman-proxy-plugin-remote-execution-ssh-install-key true

出力は次のようになります。

 

Satellite installer sample output

次に、Ansible ロールを Satellite サーバーに適用します。

[Hosts] > [All Hosts] をクリックします。

 

Click on Hosts > All Hosts

Satellite サーバーを編集します。

 

Edit your Satellite server

[Ansible Roles] タブをクリックします。

 

Click on the Ansible Roles tab

Convert2RHEL ロールは、サブメニューの 2 ページ目にあります。+ 記号をクリックして、redhat.satellite.convert2rhel ロールを Satellite サーバーに割り当てます。

 

The Convert2RHEL roles is on the second page

[Submit] をクリックします。

 

Click Submit

ホスト情報ページにリダイレクトされます。[Schedule Remote Job] ボタンをクリックし、 [Run Ansible roles] を選択します。

 

Click on the Schedule Remote Job button and select Run Ansible roles

ジョブのステータスを表示するページにリダイレクトされます。ジョブのリアルタイムステータスを確認するには、Satellite ホストをクリックします。

 

Click on the Satellite host to see the real-time status of the job

ジョブの各タスクが実行されていることを確認できます。

 

Here you can see each task in the job being executed

Ansible ロールは、必要なコンテンツの同期、ホストグループとアクティベーションキーの作成などのタスクを行います。Satellite 6.11 には、CentOS 7 ホストを登録するために作成されたアクティベーションキー「Convert2RHEL7」によって Convert2RHEL8 リポジトリが有効化されるというバグがあります。このバグを回避するには、「convert2rhel_centos7」アクティベーションキーでこのリポジトリをオーバーライドする必要があります。

 

To work around this bug, you must override this repo in the "convert2rhel_centos7" activation key

変換を実行する

重要:変換を実行する前に、対象ホストを最新の状態にし、最新のカーネルで再起動する必要があります。

まず、変換するホストを登録する必要があります。ここでは CentOS7 ホストを変換します。[Hosts] > [Register Host] をクリックします。

 

Click on Hosts > Register Host

テスト用の CentOS ホストでは、Satellite サーバーから認証局ファイルをコピーしていません。その方法の 詳細については、こちらをご覧ください。

Register Host メニューで、1) 「CentOS 7 converting」ホストグループ、2) 「Insecure」、3) 「Advanced」を選択します。[Insecure] オプションを使用すると、最初の自己署名証明書の検証を実行しないでスクリプトを実行できます。それ以降の通信は完全に保護されます。「Insecure」の使用を避けたい場合は、 こちらで証明書のインポートの詳細についてご確認ください。

 

Register Host

次に、[Advanced] をクリックします。

[Register Host] メニューの [Advanced] コンテキストで、次のタスクを実行します。

  1. 「Activation Keys」がホストグループ「convert2rhel_centos7」から継承されていることを確認します。ここでは何もクリックする必要はありません。

  2. [Generate] をクリックします。これにより curl スクリプトが生成されます。これは、コピーして CentOS ホストの CLI に貼り付けます。

  3. コピーボタンをクリックして curl スクリプトをコピーします。

 

Register Host Advanced Tab

対象ホストの 1 つにログインします。ホストの正しいロケールをエクスポートします。

export LANG=en_US.UTF-8

curl スクリプトを貼り付けて実行します。出力例を次に示します。

 

Some example output

すべての対象ホストに対してこのタスクを繰り返します。

[Hosts] メニューに、Satellite に登録されているすべての CentOS ホストが表示されます。

 

In the Hosts menu, you see all your CentOS hosts registered to Satellite.

次のタスクを実行して、Convert2RHEL 操作を開始します。

  1. 対象ホストを選択します。

  2. [Select Action] をクリックし、 [Schedule Remote Job] を選択します。

 

Click on "Select Action" and select "Schedule Remote Job".

[Job invocation] メニューで、次のタスクを実行します。

  1. [Job category] ドロップダウンで、 [Convert 2 RHEL] を選択します。

  2. [Activation Key] ドロップダウンで、 [convert2rhel_rhel7] を選択します。

  3. [Submit] をクリックして、Convert2RHEL の一括操作を開始します。

 

Click "Submit" to start the bulk Convert2RHEL operation.

[Job Overview] メニューにリダイレクトされます。ここでホストをクリックすると、各ホストのジョブのリアルタイムステータスを表示できます。

 

You’ll be redirected to the "Job Overview" menu

ジョブのリアルタイムビューは次のとおりです。

 

Here’s the real-time view of the job.

最終的に、すべてのホストが一度に RHEL に変換されます。

 

The final result, all hosts converted to RHEL at once!

詳細については、Convert2RHEL の公式ドキュメントを参照してください。

 


About the author

As a Senior Principal Technical Marketing Manager in the Red Hat Enterprise Linux business unit, Matthew Yee is here to help everyone understand what our products do. He joined Red Hat in 2021 and is based in Vancouver, Canada.

Read full bio