Nutanix AHVでRHELを使用する場合のvirt-who設定方法

Red Hatでソリューションアーキテクトをしている田中司恩(@tnk4on)です。

Red HatとNutanix間の戦略的提携によるNutanix AHV(以下、AHV)がRed Hat認定ハイパーバイザーになりました。 この件については以前の記事でもご紹介しています。

rheb.hatenablog.com

上記記事を書いた時はまだvirt-whoがAHVに未対応でしたが、その後正式サポートされるようになりました!下記のKCSではRed Hat Subscription Management(以下、RHSM)と連携するAHV向けvirt-whoの設定方法が紹介されています。

(参考)実はNutanixは以前からAHV対応をしたコードをvirt-whoのアップストリームに提供していましたが、FedoraとRHEL向けのRPMにはAHV対応は取り除かれてビルドされていました。今回正式にAHVがRed Hat認定ハイパーバイザーになったことで取り除かれていた機能が使えるようになったということです。*1

今回はRed Hat Enterprise Linux(以下、RHEL) のVirtual Data Center (以下、VDC) サブスクリプションをAHV上で使用する場合のvirt-whoの設定方法とRHSMと連携したサブスクリプションの適用方法についてステップバイステップで紹介します*2

-目次-


[はじめに] RHEL VDCとvirt-whoについて

RHEL VDCとvirt-whoについては下記の公式の情報が参考になります。

また、日本語の情報としては下記の森若さんの記事で詳細に解説されています。

rheb.hatenablog.com

上記の日本語記事でも書かれていますがvirt-whoは少し独特な仕組みです。AHVでRHEL VDCを使う場合でもその上で稼働するRHELに適切にサブスクリプションをアタッチするためには必要となります。 次の項目ではvirt-whoインスタンスの構築方法について解説いたします。

virt-whoインスタンスの構築

AHV上のRHEL仮想マシンにvirt-whoを導入し、virt-whoインスタンスとして構築します。

前提条件

  • AHVが構築済みでPrismにログインが可能であること
  • RHEL 8.2/8.4のいずれかのOSバージョンの仮想マシンがAHV上に構築済み
    • (注意)AHV上ではRHEL 7.9のOS自体はサポートされますが、virt-whoを動かすにはRHEL 8.2または8.4が必要です。
  • 使用するRed HatアカウントにRHEL VDCサブスクリプションがAHVホストの台数分登録されていること

Red Hatアカウントに登録されたRHEL VDCサブスクリプション一覧
Red Hatアカウントに登録されたRHEL VDCサブスクリプション一覧

全体構成図

virt-whoとAHV連携後の全体構成は下記のようになります

virt-whoとAHV連携の全体構成図
virt-whoとAHV連携の全体構成図

今回はNutanixの最小構成である3ノードクラスタ上で全てのRHEL仮想マシンを動かす構成とします。

作業手順

  1. 一時的なサブスクリプションのアタッチ
  2. virt-whoのインストール
  3. virt-whoの設定
  4. virt-whoの起動

以降はvirt-whoをインストールするRHEL仮想マシン(ホスト名:virt-who)で作業します*3

1. 一時的なサブスクリプションのアタッチ

RHELにvirt-whoをインストールするためにはdnfコマンドの実行が必要ですが、そのためにはサブスクリプションをアタッチする必要があります。しかしながらRHEL VDCはAHVホストに対応したサブスクリプションのためRHEL仮想マシンには適用できません。dnfコマンドを実行したいのにできないという「Chicken-and-Egg」な状態になってしまいます。これを解消するためにRHEL VDCサブスクリプションをRHEL仮想マシンにアタッチすることで一時的なサブスクリプションとして使用することが可能となっています。

subscription-managerコマンドでホストの登録を行い、RHEL VDCサブスクリプションを指定してアタッチします。使用するサブスクリプションを指定する為、先にプールIDを確認します。

# subscription-manager list --available | grep -A 2 -B 2 "RH00001"
サブスクリプション名:     Red Hat Enterprise Linux for Virtual Datacenters, Premium.
提供:
SKU:                      RH00001
契約:                     12135536
プール ID:                8a99f9af7b36770d017b85a10d383e29
# subscription-manager register
# subscription-manager attach --pool 8a99f9af7b36770d017b85a10d6c3e2b

RHEL VDCサブスクリプションをアタッチするとサブスクリプションタイプが Standard (Temporary)となっていることが確認できます。

# subscription-manager list --consumed
+-------------------------------------------+
   割り当て済みのサブスクリプション
+-------------------------------------------+
サブスクリプション名:     Red Hat Enterprise Linux for Virtual Datacenters, Premium

...(省略)...

状態の詳細:               Guest has not been reported on any host and is using a temporary unmapped guest subscription. For more information, please see https://access.redhat.com/solutions/1592573
サブスクリプションタイプ: Standard (Temporary)
開始:                     2021年08月27日
終了:                     2021年09月03日
エンタイトルメントタイプ: 仮想
  • Note: 一時的なサブスクリプションの有効期間は7日間です*4
# subscription-manager status
+-------------------------------------------+
   システムのステータス詳細
+-------------------------------------------+
全体のステータス: 不十分

Red Hat Enterprise Linux for Virtual Datacenters, Premium:
- Guest has not been reported on any host and is using a temporary unmapped guest subscription. For more information, please see https://access.redhat.com/solutions/1592573

システムの目的の状態: 指定されていません

RHSMのシステム一覧に表示されたvirt-who仮想マシン
RHSMのシステム一覧に表示されたvirt-who仮想マシン

「一部サブスクライブ済み」と表示され警告表示になっている
「一部サブスクライブ済み」と表示され警告表示になっている

このようにステータスは警告表示になっていますが一時的なサブスクリプションがアタッチすることでdnfコマンドが使用できるようになります。

# dnf repolist
Updating Subscription Management repositories.
repo id                                                                                   repo の名前
rhel-8-for-x86_64-appstream-rpms                                                          Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)
rhel-8-for-x86_64-baseos-rpms                                                             Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs)

この状態でvirt-whoのインストールを行います

2. virt-whoのインストール

dnfコマンドでvirt-whoパッケージをインストールします

# dnf install virt-who

3. virt-whoの設定

virt-who設定ファイルに記載するための組織IDの確認を行います。

subscription-managerコマンドで組織IDを確認します

# subscription-manager identity
システム ID: 408b0d30-0445-45bc-b7bd-7450c67cec3a
名前: virt-who
組織名: 13278380
組織 ID: 13278380

次に、virt-whoユーザーのパスワードの暗号化を行います。ここで言うvirt-whoユーザーとはPrism ElementまたはPrism Centralに接続するユーザーのことです。 設定ファイルにpassword=を指定することで平文でのパスワードを使用することも可能ですが、セキュリティ上の観点から暗号化したパスワードencrypted_password=の設定が推奨されます。

virt-who-passwordコマンドを実行して暗号化したパスワードを取得します*5

# virt-who-password
Password: # ←ここにPrism接続ユーザーのパスワードを入力
Use following as value for encrypted_password key in the configuration file:
0693dff7817da5e4620ddc2c0801dc76 # ←暗号化されたパスワードが出力されるので内容を控える

virt-who設定ファイルを作成します。

# vi /etc/virt-who.d/virt-who.conf

<virt-who設定ファイルのサンプル記入例>

[ahv]
type=ahv
server=192.168.1.70
username=admin
encrypted_password=0693dff7817da5e4620ddc2c0801dc76
owner=13278380
hypervisor_id=hostname
prism_central=false
update_interval=60
internal_debug=false
  • Note: サンプルはKCSに記載のものを流用

パラメーター解説

  • type= ハイパーバイザーにAHVを使用するのでahvを指定
  • server= Prism ElementまたはPrism Centralに接続するIPアドレスを入力(FQDNは非対応)
  • username= Prism ElementまたはPrism Centralに接続するユーザー名
  • encrypted_password= Prism ElementまたはPrism Centralに接続するパスワードを暗号化したもの
  • owner= RHSM上の組織ID
  • hypervisor_id= RHSM上の登録名をAHVホスト名にするためhostnameを指定
  • prism_central= Prism Centralに接続する場合はtrue、Prism Elementに接続する場合はfalseを指定
  • update_interval=60 ホストとVMのマッピングをチェックする間隔。単位は秒。
  • internal_debug= デバッグ出力する場合にtrueを指定。APIの応答が出力される。

4. virt-whoの起動

systemdでvirt-whoデーモンの登録および起動を行います

# systemctl enable virt-who --now
Created symlink /etc/systemd/system/multi-user.target.wants/virt-who.service → /usr/lib/systemd/system/virt-who.service.

systemctl statusを実行し、virt-who.serviceが正常に起動していることを確認します。

# systemctl status virt-who.service

出力結果を開く

● virt-who.service - Daemon for reporting virtual guest IDs to subscription-manager
   Loaded: loaded (/usr/lib/systemd/system/virt-who.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2021-08-31 02:30:33 JST; 9s ago
 Main PID: 9606 (virt-who)
    Tasks: 4 (limit: 11385)
   Memory: 28.1M
   CGroup: /system.slice/virt-who.service
           └─9606 /usr/libexec/platform-python /usr/bin/virt-who

 8月 31 02:30:33 virt-who /usr/bin/virt-who[9606]: 2021-08-31 02:30:33,366 [virtwho.main INFO] MainProcess(9606):Thread-2 @ahv_interface.py:login:179 - Successfully logged into the AHV REST server
 8月 31 02:30:33 virt-who /usr/bin/virt-who[9606]: 2021-08-31 02:30:33,367 [virtwho.main INFO] MainProcess(9606):Thread-2 @ahv_interface.py:get_vms_uuid:507 - Getting the list of available vms
 8月 31 02:30:33 virt-who virt-who[9606]: [169B blob data]
 8月 31 02:30:33 virt-who /usr/bin/virt-who[9606]: 2021-08-31 02:30:33,452 [virtwho.main INFO] MainProcess(9606):Thread-2 @ahv_interface.py:get_vms_uuid:558 - Total number of vms uuids found and saved fo>
 8月 31 02:30:33 virt-who /usr/bin/virt-who[9606]: 2021-08-31 02:30:33,453 [virtwho.main INFO] MainProcess(9606):Thread-2 @ahv_interface.py:build_host_to_uvm_map:746 - Processing hosts for each vm.
 8月 31 02:30:33 virt-who /usr/bin/virt-who[9606]: 2021-08-31 02:30:33,732 [virtwho.main INFO] MainProcess(9606):Thread-2 @virt.py:_send_data:981 - Report for config "ahv" gathered, placing in datastore
 8月 31 02:30:34 virt-who /usr/bin/virt-who[9606]: 2021-08-31 02:30:34,040 [virtwho.destination_-1311589272434698800 INFO] MainProcess(9606):Thread-3 @subscriptionmanager.py:_connect:159 - X-Correlation->
 8月 31 02:30:37 virt-who /usr/bin/virt-who[9606]: 2021-08-31 02:30:37,815 [virtwho.destination_-1311589272434698800 INFO] MainProcess(9606):Thread-3 @virt.py:_send_data:651 - Hosts-to-guests mapping for>
 8月 31 02:30:37 virt-who /usr/bin/virt-who[9606]: 2021-08-31 02:30:37,816 [virtwho.destination_-1311589272434698800 INFO] MainProcess(9606):Thread-3 @virt.py:_send_data:682 - Sending updated Host-to-gue>
 8月 31 02:30:37 virt-who /usr/bin/virt-who[9606]: 2021-08-31 02:30:37,816 [virtwho.destination_-1311589272434698800 INFO] MainProcess(9606):Thread-3 @subscriptionmanager.py:_connect:159 - X-Correlation->

以上でvirt-whoインスタンスの構築は完了です。 次の項目ではRHSM上でAHVホストにサブスクリプションをアタッチする方法を解説します。

AHVホストのサブスクリプションのアタッチ

RHSM上でAHVホストにRHEL VDCサブスクリプションをアタッチします。そのためにはvirt-whoからRHSMへ使用しているAHVホストの情報が正しく報告される必要があります。

[注意] virt-whoによってAHVホストの情報がRHSMへ報告されるためには各AHVホスト上に少なくとも1台以上のパワーオン状態のRHEL仮想マシンが必要です。仮想マシンホストアフィニティを使用すると簡単に指定したAHVホスト上に仮想マシンを配置できます。

各AHVホスト上に起動済みRHEL仮想マシンを配置する
各AHVホスト上に起動済みRHEL仮想マシンを配置する

サブスクリプションをアタッチしたいホストを選択します(今回はntnx-ahv01)

サブスクリプションをアタッチするホストを選択。ステータスが「正しくサブスクライブ済み」になっていることを確認。
サブスクリプションをアタッチするホストを選択。ステータスが「正しくサブスクライブ済み」になっていることを確認。

  • Note: virt-whoからRHSMへ報告直後はホストのステータスが不明な状態になっていることがあります。しばらく待って「正しくサブスクライブ済み」になった後、サブスクリプションのアタッチを実行します。

「サブスクリプション」タブを選択し「サブスクリプションのアタッチ」ボタンを押します。

「サブスクリプションのアタッチ」ボタンを押す
「サブスクリプションのアタッチ」ボタンを押す

一覧に表示されたサブスクリプションからホストに適用したいRHEL VDCを選択し「サブスクリプションのアタッチ」ボタンを押します。

使用するサブスクリプション選択しアタッチを実行します
使用するサブスクリプション選択しアタッチを実行します

アタッチ完了後の画面
アタッチ完了後の画面

AHVホストの詳細画面に戻り、アタッチ済みサブスクリプションが0から1に変更されたことを確認します

アタッチ済みサブスクリプション数が1になっている
アタッチ済みサブスクリプション数が1になっている

同じ手順で残りのAHVホストにサブスクリプションのアタッチを実行します。AHVホストにサブスクリプションをアタッチすることで、その上で稼働するRHELにも適切なサブスクリプションのアタッチができるようになります。 全てのAHVホストにサブスクリプションがアタッチが完了したら次は各RHEL仮想マシンにサブスクリプションをアタッチします。

RHEL仮想マシンへのサブスクリプションのアタッチ

RHEL仮想マシンへのサブスクリプションのアタッチは下記の作業を実施します。

  1. virt-whoインスタンスへのサブスクリプションのアタッチ
  2. そのほかのRHEL仮想マシンへサブスクリプションのアタッチ

1. virt-whoインスタンスへのサブスクリプションのアタッチ

virt-whoインスタンスで再度サブスクリプションのアタッチを行うことで、一時的なサブスクリプションが削除され正式なサブスクリプションが適用されます

virt-whoインスタンス上でsubscription-managerコマンドを実行します

# subscription-manager attach --auto
1 件のローカル証明書が削除されました。
インストールしているすべての製品に、有効なエンタイトルメントが付与されています。 現時点では、サブスクリプションを更新する必要はありません。
インストール済み製品の現在の状態:
製品名: Red Hat Enterprise Linux for x86_64
状態:   サブスクライブ済み

サブスクリプション管理のステータスが「正しくサブスクライブ済み」に変更されている
サブスクリプション管理のステータスが「正しくサブスクライブ済み」に変更されている

2. そのほかのRHEL仮想マシンへサブスクリプションのアタッチ

RHEL仮想マシン内から通常の手順でホストの登録およびサブスクリプションのアタッチが行えます。登録の方法は下記のいずれの方法でも可能です。

  • 「ホスト登録」→「アタッチ」を順に実行する
  • 「ホスト登録」と同時に「auto-attach」を使用してサブスクリプションのアタッチを実行する
  • 「アクティベーションキーを使用してホストの登録」→「アタッチ」を順に実行する

例1.「ホスト登録」→「アタッチ」を順に実行する

[root@rhel01 ~]# subscription-manager register
登録中: subscription.rhsm.stage.redhat.com:443/subscription
ユーザー名: tnk4on-stage
パスワード:
このシステムは、次の ID で登録されました: a840a3c4-401c-4435-974f-e5d2af156148
登録したシステム名: rhel01
[root@rhel01 ~]# subscription-manager attach --auto
インストール済み製品の現在の状態:
製品名: Red Hat Enterprise Linux for x86_64
状態:   サブスクライブ済み

例2.「ホスト登録」と同時に「auto-attach」を使用してサブスクリプションのアタッチを実行する

[root@rhel02 ~]# subscription-manager register --auto-attach
登録中: subscription.rhsm.stage.redhat.com:443/subscription
ユーザー名: tnk4on-stage
パスワード:
このシステムは、次の ID で登録されました: 6238007e-4153-494a-9157-ae85640cd0c3
登録したシステム名: rhel02
インストール済み製品の現在の状態:
製品名: Red Hat Enterprise Linux for x86_64
状態:   サブスクライブ済み

例3.「アクティベーションキーを使用してホストの登録」→「アタッチ」を順に実行する

[root@rhel03 ~]# subscription-manager register --activationkey RHEL_VDC --org 13278380
このシステムは、次の ID で登録されました: bb730c9a-0b16-49b6-a13a-5a90983cab2f
登録したシステム名: rhel03
インストール済み製品の現在の状態:
製品名: Red Hat Enterprise Linux for x86_64
状態:   サブスクライブ済み

[root@rhel03 ~]# subscription-manager attach --auto
インストールしているすべての製品に、有効なエンタイトルメントが付与されています。 現時点では、サブスクリプションを更新する必要はありません。
インストール済み製品の現在の状態:
製品名: Red Hat Enterprise Linux for x86_64
状態:   サブスクライブ済み

AHVホスト、virt-whoインスタンス、その他RHEL仮想マシン、全てが正常にサブスクリプションのアタッチが完了すると、RHSMで下記のように表示されます。

全ての登録システムのサブスクリプションのステータスが正常表示
全ての登録システムのサブスクリプションのステータスが正常表示

システムに登録した仮想マシンおよびハイパーバイザー数が正しく表記。RHEL VDCサブスクリプションが正しく消費されている。
システムに登録した仮想マシンおよびハイパーバイザー数が正しく表記。RHEL VDCサブスクリプションが正しく消費されている。

Tips

virt-whoの動作テスト

トラブルシュートなどでvirt-whoの動作テストをしたい場合はvirt-who -odコマンドを使用します。通常はvirt-whoは定期的に実行されるますが、virt-who -odコマンドを使用するとワンショットで実行することができます。

virt-whoインスタンス上でvirt-whoデーモンを停止し、virt-who -odコマンドを実行します。

# systemctl stop virt-who
# virt-who -od

同時にNutanix側のログを確認します。SSHでNutanixクラスターのVIPへログインし下記のログファイルを確認します。api_audit.logはREST APIのログが記録されるファイルです。

$ ssh nutanix@192.168.1.70
$ tail -f ~/data/prism/api_audit.log

出力結果を開く

INFO  2021-08-31 00:21:41,417Z clientType=External||userName=admin||NutanixApiVersion=2.0||httpMethod=GET||restEndpoint=/v2.0/clusters||entityUuid=||queryParams=||payload=
INFO  2021-08-31 00:21:41,467Z clientType=External||userName=admin||NutanixApiVersion=2.0||httpMethod=GET||restEndpoint=/v2.0/vms||entityUuid=||queryParams=||payload=
INFO  2021-08-31 00:21:41,502Z clientType=External||userName=admin||NutanixApiVersion=2.0||httpMethod=GET||restEndpoint=/v2.0/vms||entityUuid=||queryParams=||payload=
INFO  2021-08-31 00:21:41,537Z clientType=External||userName=admin||NutanixApiVersion=2.0||httpMethod=GET||restEndpoint=/v2.0/vms/e0b78d2a-9370-47a8-acfa-f8588951219b||entityUuid=e0b78d2a-9370-47a8-acfa-f8588951219b||queryParams=||payload=
INFO  2021-08-31 00:21:41,564Z clientType=External||userName=admin||NutanixApiVersion=2.0||httpMethod=GET||restEndpoint=/v2.0/hosts/d4cdfda2-2ed8-498d-965c-0341dd4538cc||entityUuid=d4cdfda2-2ed8-498d-965c-0341dd4538cc||queryParams=||payload=
INFO  2021-08-31 00:21:41,593Z clientType=External||userName=admin||NutanixApiVersion=2.0||httpMethod=GET||restEndpoint=/v2.0/hosts/d4cdfda2-2ed8-498d-965c-0341dd4538cc||entityUuid=d4cdfda2-2ed8-498d-965c-0341dd4538cc||queryParams=||payload=
INFO  2021-08-31 00:21:41,617Z clientType=External||userName=admin||NutanixApiVersion=2.0||httpMethod=GET||restEndpoint=/v2.0/vms/185b3fd7-1697-4850-8ddc-ac233b09c6ff||entityUuid=185b3fd7-1697-4850-8ddc-ac233b09c6ff||queryParams=||payload=
INFO  2021-08-31 00:21:41,687Z clientType=External||userName=admin||NutanixApiVersion=2.0||httpMethod=GET||restEndpoint=/v2.0/hosts/fae51b97-3cc5-4752-beab-6cc7df7b2374||entityUuid=fae51b97-3cc5-4752-beab-6cc7df7b2374||queryParams=||payload=
INFO  2021-08-31 00:21:41,713Z clientType=External||userName=admin||NutanixApiVersion=2.0||httpMethod=GET||restEndpoint=/v2.0/hosts/fae51b97-3cc5-4752-beab-6cc7df7b2374||entityUuid=fae51b97-3cc5-4752-beab-6cc7df7b2374||queryParams=||payload=
INFO  2021-08-31 00:21:41,743Z clientType=External||userName=admin||NutanixApiVersion=2.0||httpMethod=GET||restEndpoint=/v2.0/vms/6a8b8a98-ed0a-4712-b5c2-fc48a6b23ace||entityUuid=6a8b8a98-ed0a-4712-b5c2-fc48a6b23ace||queryParams=||payload=
INFO  2021-08-31 00:21:41,773Z clientType=External||userName=admin||NutanixApiVersion=2.0||httpMethod=GET||restEndpoint=/v2.0/hosts/b36d16cc-5526-45e6-9ac0-a63001e38b4c||entityUuid=b36d16cc-5526-45e6-9ac0-a63001e38b4c||queryParams=||payload=
INFO  2021-08-31 00:21:41,796Z clientType=External||userName=admin||NutanixApiVersion=2.0||httpMethod=GET||restEndpoint=/v2.0/hosts/b36d16cc-5526-45e6-9ac0-a63001e38b4c||entityUuid=b36d16cc-5526-45e6-9ac0-a63001e38b4c||queryParams=||payload=
INFO  2021-08-31 00:21:41,821Z clientType=External||userName=admin||NutanixApiVersion=2.0||httpMethod=GET||restEndpoint=/v2.0/vms/c5408ff2-dc36-499c-aeee-49fe20ac373c||entityUuid=c5408ff2-dc36-499c-aeee-49fe20ac373c||queryParams=||payload=
INFO  2021-08-31 00:21:41,889Z clientType=External||userName=admin||NutanixApiVersion=2.0||httpMethod=GET||restEndpoint=/v2.0/hosts/b36d16cc-5526-45e6-9ac0-a63001e38b4c||entityUuid=b36d16cc-5526-45e6-9ac0-a63001e38b4c||queryParams=||payload=
INFO  2021-08-31 00:21:41,913Z clientType=External||userName=admin||NutanixApiVersion=2.0||httpMethod=GET||restEndpoint=/v2.0/hosts/b36d16cc-5526-45e6-9ac0-a63001e38b4c||entityUuid=b36d16cc-5526-45e6-9ac0-a63001e38b4c||queryParams=||payload=

virt-whatコマンド使用して稼働するハイパーバイザーを確認する

virt-whoをインストールするとvirt-whatコマンド*6もインストールされます。virt-whatコマンドを使用すると仮想マシンが稼働するハイパーバイザーの名前を確認することができます。

virt-whatコマンドはAHVホスト上のRHEL仮想マシンで実行します。

[root@rhel03 ~]# virt-what
nutanix_ahv

rhel03仮想マシンはnutanix_ahv上で動作しているという結果が返ってきます。

まとめ

RHEL VDCをAHV上で使用するためのvirt-whoの設定方法からRHSMと連携したサブスクリプションの登録方法まで解説しました。 virt-whoインスタンスに一時的なサブスクリプションを割り当てる仕組みなどは実際にやってみないと理解しづらい点もありますので、本記事を参考になんとなくのイメージを掴んでいただけたらと思います。今回は紹介しませんでしたがvirt-whoはRHSMの代わりにRed Hat Satelliteと連携することも可能です。RHELの台数が増えて管理コストの低減やパッチ適用の効率化が必要な場合はRed Hat Satelliteの導入をご検討ください。

RHEL VDCを正しく登録すればリソースのある限りRHEL仮想マシンを数の制限なく稼働することができます。クラスターのリソースが不足した場合はNutanixクラスターにノードを追加して容易にクラスターの拡張を行えるのがNutanixの利点です。virt-whoが追加分のノードの検出も行うのでノード追加時も本記事と同じ手順でサブスクリプションの適用ができます。

RHEL VDCとvirt-whoを利用してAHV上で気兼ねなくどんどんRHELを使っていきましょう!

リンク

*1:アップストリームのGitHubリポジトリのPull RequestでAHV対応を取り除くパッチを確認できる

*2:基本的な内容はKCSの内容に準拠

*3:今回はRHEL 8.4を最小構成でインストールしたものを使用

*4:参考:【RHEL】virt-who設定前に割り当てられる一時的なサブスクリプションの有効期間は7日間 - あとがきのようなもの

*5:virt-who-passwordコマンドはvirt-whoをインストールすると同時にインストールされる

*6:プログラムが仮想マシンで実行中かどうかを検出するシェルスクリプト

* 各記事は著者の見解によるものでありその所属組織を代表する公式なものではありません。その内容については非公式見解を含みます。