Red Hat Satellite での仮想マシンサブスクリプションの設定

Red Hat Satellite 6.12

virt-who を使用したホストベースのサブスクリプションの管理

Red Hat Satellite Documentation Team

概要

このガイドでは、Red Hat Satellite でのサブスクリプションおよびアクティベーションキーの準備、virt-who の設定、および仮想マシンを登録してハイパーバイザーからサブスクリプションを継承する方法について説明します。

Red Hat ドキュメントへのフィードバック (英語のみ)

Red Hat ドキュメントに対するご意見をお聞かせください。ドキュメントの改善点があればお知らせください。

Bugzilla でチケットを作成することでフィードバックを送信できます。

  1. Bugzilla のWeb サイトに移動します。
  2. Component フィールドで、Documentation を使用します。
  3. Description フィールドに、ドキュメントの改善に関するご意見を記入してください。ドキュメントの該当部分へのリンクも追加してください。
  4. Submit Bug をクリックします。

第1章 概要

以下の仮想化プラットフォームでは、Red Hat Enterprise Linux 仮想マシンのホストベースのサブスクリプションを使用できます。

  • Red Hat Virtualization
  • Red Hat Enterprise Linux Virtualization (KVM)
  • Red Hat OpenStack Platform
  • VMware vSphere
  • Microsoft Hyper-V

サブスクリプションモデルは非推奨となり、将来のリリースでは削除されることに注意してください。代わりに Simple Content Access を使用することを推奨します。

1.1. ホストベースのサブスクリプション

仮想マシンは、物理サブスクリプションのエンタイトルメントを使用する代わりに、ホストベースのサブスクリプションを使用できます。ホストベースのサブスクリプションはハイパーバイザーに割り当てられ、ハイパーバイザーが仮想マシンにサブスクリプションを提供できるようにします。多くのホストベースのサブスクリプションは、無制限の仮想マシンのエンタイトルメントを提供します。

仮想マシンがそのハイパーバイザーからサブスクリプションを継承できるようにするには、virt-who をインストールし、設定する必要があります。virt-who は仮想化プラットフォームを照会し、ハイパーバイザーと仮想マシンの情報を Red Hat Satellite に報告します。

サブスクリプションが割り当てられておらず、かつ自動アタッチが true に設定されているアクティベーションキーを使用して仮想マシンが登録されており、十分なホストベースのサブスクリプションが利用可能な場合、次のいずれかの動作が発生します。

  • virt-who で仮想マシンが報告されており、ホストベースのサブスクリプションがハイパーバイザーに割り当てられている場合には、仮想マシンはハイパーバイザーからサブスクリプションを継承します。
  • virt-who で仮想マシンが報告されており、ハイパーバイザーが Satellite に登録されているものの、ホストベースのサブスクリプションが割り当てられていない場合は、ホストベースのサブスクリプションがハイパーバイザーに割り当てられ、仮想マシンに継承されます。
  • virt-who により仮想マシンまたはそのハイパーバイザーが報告されていない場合は、Satellite は仮想マシンに、最大 7 日間有効なサブスクリプションを一時的に割り当てます。virt-who が更新情報を報告した後に、Satellite は仮想マシンを実行するハイパーバイザーを判断して、仮想マシンに永続的なサブスクリプションを割り当てます。

自動アタッチが有効ではあるものの、virt-who が実行されていないか、ホストベースのサブスクリプションが利用できない場合には、Satellite は代わりに物理サブスクリプションを仮想マシンに割り当てます。この場合、想定以上のエンタイトルメントが使用される可能性があります。

自動アタッチが有効になっていない場合には、仮想マシンはホストベースのサブスクリプションを使用できません。

サブスクリプションに virt-who が必要かどうかを確認するには、Satellite Web UI で Content > Subscriptions に移動します。Requires Virt-Who 列にチェックマークが付いている場合は、そのサブスクリプションを使用するように virt-who を設定する必要があります。

仮想マシンのサブスクリプションプロセス

以下の図では、仮想マシンが virt-who で報告されていない場合のサブスクリプションワークフローを紹介しています。

仮想マシンのサブスクリプションプロセス

1 Satellite が仮想マシンをプロビジョニングします。

2 仮想マシンが Satellite Server にサブスクリプションを要求します。

3 Satellite Server が仮想マシンに最長で 7 日間有効となる一時的なサブスクリプションを付与し、仮想マシンが属するハイパーバイザーを判別します。

4 virt-who がハイパーバイザーまたは仮想化マネージャーに接続し、その仮想マシンに関する情報を要求します。

5 ハイパーバイザーまたは仮想化マネージャーが、それぞれの UUID を含む仮想マシンのリストを virt-who に返します。

6 virt-who が仮想マシンとそれぞれのハイパーバイザーのリストを Satellite Server に報告します。

7 十分なエンタイトルメントが利用可能な場合、Satellite Server が仮想マシンに永続的なサブスクリプションを割り当てます。

関連情報

Red Hat サブスクリプションモデルの詳細については、Red Hat サブスクリプション管理のワークフローの概要 を参照してください。

1.2. 設定の概要

仮想マシンがハイパーバイザーからサブスクリプションを継承できるようにするには、以下の手順に従います。

前提条件

  • ホストベースのサブスクリプションを含むサブスクリプションマニフェストを Satellite Server にインポートする。詳細は、コンテンツの管理Red Hat サブスクリプションマニフェストの Satellite Server へのインポート を参照してください。
  • 使用する予定のハイパーバイザーすべてに対応するために、ホストベースのサブスクリプションに十分なエンタイトルメントがあることを確認する。
  • Microsoft Hyper-V を使用している場合には、ハイパーバイザーでリモート管理を有効にする。
  • 読み取り専用アクセスのあるユーザーを作成し、各ハイパーバイザーまたは仮想化マネージャーで有効期限のないパスワードを作成する。virt-who はこのアカウントを使用して仮想マシンのリストを取得し、Satellite Server に報告します。

    • Red Hat 製品および Microsoft Hyper-V の場合は、Red Hat Enterprise Linux 仮想マシンを実行する各ハイパーバイザーで virt-who ユーザーを作成します。
    • VMware vSphere の場合は、vCenter Server で virt-who ユーザーを作成します。この virt-who ユーザーには、最低でも vCenter Data Center のすべてのオブジェクトに対する読み取り専用アクセスが必要です。

手順の概要

  1. 「各仮想化プラットフォーム向けの virt-who の設定」:このセクションの表を利用して、ご使用の仮想化プラットフォーム向けの virt-who の設定およびデプロイ方法を計画します。
  2. 2章仮想マシンのアクティベーションキーの作成:自動アタッチが有効で、サブスクリプションが割り当てられていないアクティベーションキーを作成します。
  3. 3章ホストベースのサブスクリプションのハイパーバイザーへの割り当て:使用する予定のハイパーバイザーすべてにホストベースのサブスクリプションを割り当てます。
  4. 4章virt-who 設定の作成:各ハイパーバイザーまたは仮想化マネージャー向けに virt-who 設定を作成します。
  5. 5章virt-who 設定のデプロイ:Satellite が生成したスクリプトを使用して、virt-who 設定をデプロイします。
  6. 6章ホストベースのサブスクリプションを使用する仮想マシンの登録:自動アタッチアクティベーションキーを使用して、仮想マシンを登録します。

1.3. 各仮想化プラットフォーム向けの virt-who の設定

virt-who は、仮想化タイプや照会対象のハイパーバイザーまたは仮想化マネージャーなどの詳細を指定するファイルを使用して設定されます。サポートされている設定は、仮想化プラットフォームによって異なります。

一般的な virt-who 設定ファイル

以下は Satellite Web UI または Hammer CLI を使用して作成された一般的な virt-who 設定ファイルの例です。

[virt-who-config-1]
type=libvirt
hypervisor_id=hostname
owner=Default_Organization
env=Library
server=hypervisor1.example.com
username=virt_who_user
encrypted_password=$cr_password
rhsm_hostname=satellite.example.com
rhsm_username=virt_who_reporter_1
rhsm_encrypted_password=$user_password
rhsm_prefix=/rhsm

type および server の値は仮想化プラットフォームによって異なります。以下の表に詳細を記載します。

username は、ハイパーバイザーまたは仮想化マネージャーの読み取り専用ユーザーを指します。このユーザーは virt-who を設定する前に作成しておく必要があります。rhsm-username は、Satellite Server に報告する virt-who のパーミッションのみを持つ自動生成されるユーザーを指します。

各仮想化プラットフォームで必要な設定

この表を使用して、virt-who の設定を計画してください。

サポート対象の仮想化プラットフォーム設定ファイルで指定する型設定ファイルで指定するサーバー設定ファイルがデプロイされるサーバー

Red Hat Virtualization

RHEL Virtualization (KVM)

Red Hat OpenStack Platform

libvirt

ハイパーバイザー (ハイパーバイザーごとに 1 つのファイル)

各ハイパーバイザー

VMware vSphere

esx

vCenter Server

Satellite Server、Capsule Server、または専用 RHEL サーバー

Microsoft Hyper-V

hyperv

Hyper-V ハイパーバイザー (ハイパーバイザーごとに 1 つのファイル)

Satellite Server、Capsule Server、または専用 RHEL サーバー

virt-who 設定ファイルの例

いくつかの一般的なハイパーバイザータイプの virt-who 設定ファイルの例を示します。

OpenStack virt-who の設定例

[root@compute-node]# cat /etc/virt-who.d/virt-who-config-1.conf
This configuration file is managed via the virt-who configure plugin
manual edits will be deleted.
[virt-who-config-1]
type=libvirt
hypervisor_id=hostname
owner=ORG
env=Library
server=qemu:///system   <====
username=virt-who-user
encrypted_password=xxxxxxxxxxx
rhsm_hostname=satellite.example.com
rhsm_username=virt_who_reporter_1
rhsm_encrypted_password=yyyyyyyyyyy
rhsm_prefix=/rhsm

KVM virt-who の設定例

type=libvirt
hypervisor_id=hostname
owner=gss
env=Library
server=qemu+ssh://root@libvirt.example.com/system
username=root
encrypted_password=33di3ksskd
rhsm_hostname=satellite.example.com
rhsm_username=virt_who_reporter_2
rhsm_encrypted_password=23233dj3j3k
rhsm_prefix=/rhsm

VMware virt-who の設定例

type=esx
hypervisor_id=hostname
owner=gss
env=Library
server=vcenter.example.com
username=username_vcenter@example.com
encrypted_password=33di3ksskd
rhsm_hostname=satellite.example.com
rhsm_username=virt_who_reporter_2
rhsm_encrypted_password=23233dj3j3k
rhsm_prefix=/rhsm
重要

rhevm および xen のハイパーバイザータイプはサポート対象外です。

kubevirt ハイパーバイザータイプは、テクノロジープレビュー機能としてのみ提供されます。

第2章 仮想マシンのアクティベーションキーの作成

以下の手順に従って、自動アタッチが有効で、サブスクリプションが割り当てられていないアクティベーションキーを作成します。このアクティべーションキーを使用して仮想マシンを登録すると、ハイパーバイザーにホストベースのサブスクリプションが割り当てられている場合、仮想マシンはそのハイパーバイザーからサブスクリプションを継承します。

アクティベーションキーの詳細は、コンテンツの管理アクティベーションの管理 を参照してください。

手順

  1. Satellite Web UI で Content > Activation keys に移動して、Create Activation Key をクリックします。
  2. Name フィールドに、アクティベーションキーの名前を入力します。
  3. Unlimited Hosts チェックボックスが選択されていることを確認します。または、制限を設定する場合は Unlimited Hosts チェックボックスの選択を解除し、Limit フィールドで、アクティベーションキーを使用して登録できる仮想マシンの最大数を入力します。
  4. Description フィールドに、アクティベーションキーの説明を入力します。
  5. Environment リストから、使用する環境を選択します。
  6. Content View リストから、使用するコンテンツビューを選択します。
  7. Save をクリックします。
  8. Activation Keys ウィンドウに新規のアクティベーションキーが表示されたら、そのキーの名前をクリックします。
  9. Subscriptions タブをクリックします。
  10. Auto-AttachYes に設定されていることを確認します。設定されていない場合は、編集アイコンをクリックして Saveをクリックします。

このアクティベーションキーにはサブスクリプションを追加しないでください。

CLI をご利用の場合

  1. アクティベーションキーを作成します。

    # hammer activation-key create \
    --name "VM_Activation_Key" \
    --unlimited-hosts \
    --description "For VMs to inherit a VDC Subscription" \
    --lifecycle-environment "Environment_Name" \
    --content-view "CV_Name" \
    --organization "My_Organization"
  2. アクティベーションキーで自動アタッチを有効にします。

    # hammer activation-key update --name "VM_Activation_Key" \
    --organization "My_Organization" --auto-attach true

第3章 ホストベースのサブスクリプションのハイパーバイザーへの割り当て

以下の手順を使用して、Red Hat Satellite にすでに登録されているハイパーバイザーに、Red Hat Enterprise Linux for Virtual Datacenters などのホストベースのサブスクリプションを割り当てます。

新しいハイパーバイザーを登録するには、ホストアクティベーションキーにホストベースのサブスクリプションが含まれていることを確認してから、ホストの管理 ガイドの Satellite へのホストの登録 を参照してください。ハイパーバイザーを照会するように virt-who を設定する前に、ハイパーバイザーを登録する必要があります。

前提条件

  • ホストベースのサブスクリプションを含むサブスクリプションマニフェストを Satellite Server にインポートする。
  • 使用する予定のハイパーバイザーすべてに対応するために、ホストベースのサブスクリプションに十分なエンタイトルメントがあることを確認する。

手順

  1. Satellite Web UI で、Hosts > Content Hosts に移動します。
  2. Content Hosts リストで、サブスクリプションを割り当てる各ハイパーバイザーの名前の横にあるチェックボックスを選択します。
  3. Select Action リストから Manage Subscriptions を選択します。
  4. Content Host Bulk Subscriptions ウィンドウで、ホストベースのサブスクリプションを選択し、Add Selected をクリックします。

CLI をご利用の場合

  1. Satellite Server で、使用可能なサブスクリプションをリストし、ホストベースのサブスクリプションの ID を検索します。

    # hammer subscription list \
    --organization-id organization_id
  2. ホストベースのサブスクリプションをハイパーバイザーに割り当てます。

    # hammer host subscription attach \
    --host host_name \
    --subscription-id subscription_id

    使用する予定のすべてのハイパーバイザーについて、これらのステップを繰り返します。

第4章 virt-who 設定の作成

以下の手順に従って virt-who 設定を作成します。Red Hat 製品と Microsoft Hyper-V には、Red Hat Enterprise Linux 仮想マシンを実行するそれぞれのハイパーバイザーに 1 つの設定が必要です。VMware vSphere には、各 vCenter Server につき 1 つの設定が必要です。

この手順の値の多くは、/etc/virt-who.d/conf_name.conf ファイルに追加され、指定されたハイパーバイザーまたは仮想化マネージャーにのみ適用されます。IntervalEnable debugging outputHTTP Proxy、および Ignore Proxy/etc/sysconfig/virt-who ファイルに保存されるグローバルな値です。グローバルな設定値は同じサーバー上のすべての virt-who 設定に適用され、そのサーバーに新規の virt-who 設定がデプロイされるたびに上書きされます。

すべての virt-who 設定は virt_who_reporter_[id] ユーザーを作成し、このユーザーに Virt-who Reporter ロールを割り当てます。この Virt-who Reporter ロールは、Satellite Server に報告する virt-who の最小限のパーミッションを提供します。このユーザーを手動で設定したり、Satellite Server へのログインに使用したりすることはできません。

前提条件

  • Red Hat ハイパーバイザー (Red Hat Enterprise Linux または Red Hat Virtualization Host) 用の virt-who 設定を作成する場合は、そのハイパーバイザーを Red Hat Satellite に登録する。
  • ハイパーバイザーまたは仮想化マネージャーで、読み取り専用の virt-who ユーザーを作成する。

    • Red Hat 製品および Microsoft Hyper-V の場合は、Red Hat Enterprise Linux 仮想マシンを実行する各ハイパーバイザーで virt-who ユーザーを作成します。
    • VMware vSphere の場合は、vCenter Server で virt-who ユーザーを作成します。この virt-who ユーザーには、最低でも vCenter Data Center のすべてのオブジェクトに対する読み取り専用アクセスが必要です。

手順

  1. Satellite Web UI で、Infrastructure > Virt-who configurations に移動します。
  2. Create Config をクリックします。New Virt-who Config ウィンドウで、各フィールドの詳細についてのヘルプアイコンをクリックできます。
  3. 設定の Name を入力します。
  4. Hypervisor Type リストから仮想化プラットフォームを選択します。

    • Red Hat Enterprise Linux Virtualization (KVM)、Red Hat Virtualization、または Red Hat OpenStack Platform: libvirt
    • VMware vSphere: esx
    • Microsoft Hyper-V: hyperv
    • rhevm および xen のハイパーバイザータイプはサポート対象外で、kubevirt ハイパーバイザータイプはテクノロジープレビュー機能としてのみ提供される点に注意してください。
  5. Hypervisor Server フィールドに、この設定を適用するサーバーの FQDN または IP アドレスを入力します。VMware vSphere の場合は、vCenter Server の FQDN または IP アドレスを使用します。その他のすべての製品の場合は、ハイパーバイザーの FQDN または IP アドレスを使用します。
  6. Hypervisor Username フィールドには、ハイパーバイザーまたは仮想化マネージャーで作成した virt-who ユーザーの名前を入力します。
  7. Hypervisor Password フィールドに、virt-who ユーザーのパスワードを入力します。このパスワードは、設定をデプロイする際に暗号化されます。libvirt タイプを使用する場合、このフィールドは必須ではありません。
  8. Interval リストから、virt-who が新規の、または更新された仮想マシン情報を要求する頻度を選択します。仮想マシンには最長で 7 日間の一時的なサブスクリプションが付与されるため、頻繁な照会は必要なく、使用環境のサイズに適した間隔を選択できます。ほとんどの環境には、Every 24 hours (24 時間ごと) が適しています。
  9. Satellite server FQDN を入力します。
  10. Hypervisor ID リストから、ホスト名または UUID を使用して Satellite Server でハイパーバイザーを識別するかどうかを選択します。
  11. Filtering オプションを選択します。

    • デフォルトは Unlimited です。この設定の対象となったハイパーバイザーはすべて virt-who によって照会されます。照会するハイパーバイザーを制限する必要がない場合は、このオプションを使用します。
    • ハイパーバイザーを Whitelist または Blacklist に設定することができます。たとえば、一部のハイパーバイザーが Microsoft Windows サーバーの仮想マシンのみを実行する必要がある場合、そのハイパーバイザーは virt-who によって報告される必要はありません。
  12. Whitelist または Blacklist を選択した場合: Filter hosts または Exclude hosts フィールドに、選択した Hypervisor ID に合わせてハイパーバイザーのコンマ区切りのリストを入力します。たとえば、ハイパーバイザーをホスト名で識別する場合は、ホスト名を使用してハイパーバイザーを追加または除外する必要があります。ハイパーバイザーの名前に特殊文字が含まれている場合は、それらの文字を引用符で囲みます。ワイルドカードと正規表現はサポートされます。ただし、正規表現の使用時はバックスラッシュをエスケープする必要がある点に注意してください。
  13. esx タイプおよび Whitelist または Blacklist を選択している場合: Filter host parents または Exclude host parents フィールドに、クラスターのコンマ区切りのリストを入力します。ホワイトリストに指定されたクラスターのハイパーバイザーは virt-who により報告されます。ブラックリストに指定されたクラスター内のハイパーバイザーは virt-who により報告されません。クラスターの名前に特殊文字が含まれている場合は、この特殊文字を引用符で囲みます。ワイルドカードと正規表現はサポートされます。ただし、正規表現の使用時はバックスラッシュをエスケープする必要がある点に注意してください。
  14. オプション: トラブルシューティング用にデバッグ出力が必要な場合は、Enable debugging output チェックボックスを選択します。
  15. オプション: virt-who がデプロイされたサーバーおよびハイパーバイザーまたは仮想化マネージャーとの通信に使用する HTTP Proxy を入力します。(例: http://proxy.example.com:3128)。

    プロキシーを使用しない場合は、このフィールドを空白のままにします。これは Ignore Proxy フィールドに * を入力するのと同じ結果になります。

  16. オプション: Ignore Proxy フィールドに、既存のプロキシー設定をバイパスするためにホスト名、IP アドレス、またはドメインのコンマ区切りのリストを入力します。
  17. Submit をクリックします。

CLI をご利用の場合

  • Satellite Server で、hammer virt-who-config create コマンドを入力します。オプションの詳細を参照するには、hammer virt-who-config create --help を入力します。

    この例では、Red Hat Enterprise Linux ハイパーバイザー用の virt-who 設定を作成します。

    # hammer virt-who-config create \
    --name rhel.example.com \
    --organization "Example Company" \
    --interval 720 \ 1
    --filtering-mode none \ 2
    --hypervisor-id hostname \ 3
    --hypervisor-type libvirt \ 4
    --hypervisor-server rhel.example.com \ 5
    --hypervisor-username virt-who \ 6
    --proxy 'http://proxy.example.com:3128' \ 7
    --satellite-url satellite.example.com
1
virt-who が仮想化プラットフォームを照会する頻度 (分単位) を選択します。仮想マシンには最長で 7 日間の一時的なサブスクリプションが付与されるため、頻繁な照会は必要なく、使用環境のサイズに適した間隔を選択できます。ほとんどの環境には、Once a day (1 日 1 回) (1440) が適しています。
2
ハイパーバイザーをフィルタリングするかどうかを選択します。照会するハイパーバイザーを制限する必要がない場合は none を使用します。または、ハイパーバイザーを whitelist あるいは blacklist に設定することができます。たとえば、一部のハイパーバイザーが Microsoft Windows サーバーの仮想マシンのみを実行する必要がある場合、そのハイパーバイザーは virt-who によって報告される必要はありません。
3
この設定を適用するハイパーバイザー (複数の場合あり) を識別する方法を選択します。Satellite Web UI で分かりやすいホスト名を指定するには、hostname を使用します。またはハイパーバイザーの名前を変更する際に重複を避けるため、uuid を使用することもできます。hwuuid は、この設定を個々のハイパーバイザーではなく仮想化マネージャーに適用する場合にのみ使用できます。また、virt-who が実行を開始した後はこれを他のオプションに変更しないでください。Subscription Manager でエントリーが重複する原因になるためです。
4
仮想化プラットフォームのサポート対象のタイプを指定します。
  • Red Hat Enterprise Linux Virtualization (KVM)、Red Hat Virtualization、または Red Hat OpenStack Platform: libvirt
  • VMware vSphere: esx
  • Microsoft Hyper-V: hyperv
  • rhevm および xen のハイパーバイザータイプはサポート対象外で、kubevirt ハイパーバイザータイプはテクノロジープレビュー機能としてのみ提供される点に注意してください。
5
この設定を適用するサーバーの FQDN または IP アドレスを指定します。VMware vSphere の場合は、vCenter Server の FQDN または IP アドレスを使用します。その他のすべての製品の場合は、ハイパーバイザーの FQDN または IP アドレスを使用します。
6
ハイパーバイザーまたは仮想化マネージャーで作成した、読み取り専用の virt-who ユーザーを指定します。libvirt タイプを使用する場合は、パスワードを指定する必要はありません。それ以外のタイプでは、virt-who ユーザーのパスワードを --hypervisor-password オプションを使用して指定する必要があります。
7
オプション: virt-who がデプロイされたサーバーおよびハイパーバイザーまたは仮想化マネージャーとの通信に使用する HTTP Proxy を入力します。

第5章 virt-who 設定のデプロイ

virt-who 設定を作成すると、Satellite はデプロイメントプロセスを自動化するスクリプトを提供します。このスクリプトは virt-who をインストールし、virt-who の個別の設定ファイルおよびグローバル設定ファイルを作成します。

Red Hat 製品の場合は、そのファイルに指定されたハイパーバイザーに各設定ファイルをデプロイする必要があります。その他の製品の場合は、Satellite Server、Capsule Server、または virt-who の実行に特化した別の Red Hat Enterprise Linux サーバーに、設定ファイルをデプロイする必要があります。

5.1. ハイパーバイザーでの virt-who 設定のデプロイ

以下の手順に従って、ファイルに指定した Red Hat ハイパーバイザーに virt-who 設定をデプロイします。グローバルの値は、このハイパーバイザーにのみ適用されます。

この手順を使用して Capsule Server に vCenter または Hyper-V virt-who 設定をデプロイすることもできます。グローバル設定値は、同じ Capsule Server 上の virt-who 設定すべてに適用され、新規の virt-who 設定がデプロイされるたびに上書きされます。

前提条件

  • Red Hat Satellite にハイパーバイザーを登録する。
  • Red Hat Virtualization Host (RHVH) を使用している場合は、virt-who の最小バージョンが利用可能になるように、これを最新バージョンに更新する。RHVH ではデフォルトで virt-who を使用できますが、これを rhel-7-server-rhvh-4-rpms リポジトリーから個別に更新することはできません。
  • ハイパーバイザーで読み取り専用の virt-who ユーザーを作成する。
  • 仮想化プラットフォーム用の virt-who 設定を作成する。

手順

  1. Satellite Web UI で、Infrastructure > Virt-who configurations に移動します。
  2. virt-who 設定の名前をクリックします。
  3. Deploy タブをクリックします。
  4. Configuration script で、Download the script をクリックします。
  5. このスクリプトをハイパーバイザーにコピーします。

    # scp deploy_virt_who_config_1.sh root@hypervisor.example.com:
  6. デプロイメントスクリプトを実行可能にし、実行します。

    # chmod +x deploy_virt_who_config_1.sh
    # sh deploy_virt_who_config_1.sh
  7. デプロイが完了したら、このスクリプトを削除します。

    # rm deploy_virt_who_config_1

5.2. Satellite Server での virt-who 設定のデプロイ

以下の手順に従って、Satellite Server に vCenter または Hyper-V virt-who 設定をデプロイします。

グローバル設定の値は、Satellite Server の virt-who 設定すべてに適用され、新規の virt-who 設定がデプロイされるたびに上書きされます。

前提条件

  • ハイパーバイザーまたは仮想化マネージャーで、読み取り専用の virt-who ユーザーを作成する。
  • Hyper-V virt-who 設定をデプロイする場合は、Hyper-V ハイパーバイザーでリモート管理を有効する。
  • 仮想化プラットフォーム用の virt-who 設定を作成する。

手順

  1. Satellite Web UI で、Infrastructure > Virt-who configurations に移動します。
  2. virt-who 設定の名前をクリックします。
  3. Hammer commandCopy to clipboard をクリックします。
  4. Satellite Server で、Hammer コマンドをターミナルに貼り付けます。

5.3. 別の Red Hat Enterprise Linux サーバーでの virt-who 設定のデプロイ

以下の手順に従って、専用の Red Hat Enterprise Linux 7 サーバーに vCenter または Hyper-V virt-who 設定をデプロイします。サーバーは物理サーバーでも仮想サーバーでもかまいません。

グローバル設定の値はこのサーバーのすべての virt-who 設定に適用され、新規の virt-who 設定がデプロイされるたびに上書きされます。

前提条件

  • ハイパーバイザーまたは仮想化マネージャーで、読み取り専用の virt-who ユーザーを作成する。
  • Hyper-V virt-who 設定をデプロイする場合は、Hyper-V ハイパーバイザーでリモート管理を有効する。
  • 仮想化プラットフォーム用の virt-who 設定を作成する。

手順

  1. Red Hat Enterprise Linux サーバーで、Satellite Server の CA 証明書をインストールします。

    # rpm -ivh http://satellite.example.com/pub/katello-ca-consumer-latest.noarch.rpm
  2. Red Hat Enterprise Linux サーバーを Satellite Server に登録します。

    # subscription-manager register \
    --org=organization_label \
    --auto-attach
  3. virt-who と Satellite Server の間の通信用のネットワークポートを開きます。

    # firewall-cmd --add-port="443/tcp"
    # firewall-cmd --add-port="443/tcp" --permanent
  4. virt-who と各ハイパーバイザーまたは仮想化マネージャーとの間の通信用にネットワークポートを開きます。

    • VMware vCenter: TCP ポート 443
    • Microsoft Hyper-V: TCP ポート 5985
  5. Satellite Web UI で、Infrastructure > Virt-who configurations に移動します。
  6. virt-who 設定ファイルの名前をクリックします。
  7. Deploy タブをクリックします。
  8. Configuration script で、Download the script をクリックします。
  9. このスクリプトを Red Hat Enterprise Linux サーバーにコピーします。

    # scp deploy_virt_who_config_1.sh root@rhel.example.com:
  10. デプロイメントスクリプトを実行可能にし、実行します。

    # chmod +x deploy_virt_who_config_1.sh
    # sh deploy_virt_who_config_1.sh
  11. デプロイが完了したら、このスクリプトを削除します。

    # rm deploy_virt_who_config_1

第6章 ホストベースのサブスクリプションを使用する仮想マシンの登録

自動アタッチアクティベーションキーを使用して仮想マシンを登録し、これらのマシンがハイパーバイザーからサブスクリプションを継承するようにします。

アクティベーションキーの詳細は、コンテンツの管理アクティベーションの管理 を参照してください。

前提条件

  • 自動アタッチが有効で、サブスクリプションが割り当てられていないアクティベーションキーを作成します。
  • ホストベースのサブスクリプションを、仮想マシンのハイパーバイザーに割り当てます。
  • 仮想マシンのハイパーバイザーを照会する virt-who 設定を作成し、デプロイします。

手順

  1. 仮想マシンを Satellite Server に登録されるように設定します。

    # yum install http://satellite.example.com/pub/katello-ca-consumer-latest.noarch.rpm
  2. 自動アタッチアクティベーションキーを使用して仮想マシンを登録します。

    # subscription-manager register --org=organization_label \
    --activationkey=activation_key_name

virt-who が仮想マシンが実行されているハイパーバイザーについての情報を提供するのを Satellite Server が待機している間、その仮想マシンは一時サブスクリプションを受け取ります。virt-who からこの情報が提供されると、Satellite Server は仮想マシンに対して永続的なサブスクリプションを割り当てます。

virt-who に報告する別のハイパーバイザーに仮想マシンが移行され、その仮想マシンにホストベースのサブスクリプションが割り当てられている場合、仮想マシンはそのハイパーバイザーからサブスクリプションを継承します。ハイパーバイザーにホストベースのサブスクリプションが割り当てられていない場合は、Satellite Server によってそのハイパーバイザーに対してホストベースのサブスクリプションが自動的に割り当てられ、仮想マシンはそのサブスクリプションを継承します。

virt-who に報告を行わない別のハイパーバイザーに仮想マシンが移行された場合や、ハイパーバイザーに割り当てることができるサブスクリプションが十分にない場合、仮想マシンはサブスクリプションを継承できません。これを回避するには、仮想マシンが移行できるすべてのハイパーバイザーにホストベースのサブスクリプションが割り当てられてられており、virt-who への報告ができることを確認するか、仮想マシンの移行を特定のハイパーバイザーに制限します。

付録A virt-who のトラブルシューティング

A.1. virt-who 設定の修正

Satellite Web UI または Hammer CLI を使用して、既存の virt-who 設定を変更することができます。たとえば、virt-who の実行頻度を変更する必要がある場合は、virt-who 設定を更新して再デプロイする必要があります。

手順

  1. Satellite Web UI で、Infrastructure > Virt-who configurations に移動します。
  2. 変更する virt-who 設定を見つけて、Actions 列で Edit をクリックします。
  3. 変更するフィールドを編集します。
  4. Submit をクリックします。
  5. 変更された virt-who 設定を再デプロイします。

CLI をご利用の場合は、以下を実行します。

  1. Satellite Server で hammer virt-who-config update コマンドを入力して、変更する設定の名前、および変更するオプションの新しい値を指定します。設定名を変更する場合は、--new-name オプションを使用する必要があります。

    # hammer virt-who-config update \
    --name current_name \
    --new-name new_name \
    --interval 1440
  2. 変更された virt-who 設定を再デプロイします。

A.2. 既存の virt-who 設定の削除

既存の virt-who 設定を削除するには、まず Satellite Web UI で設定のエントリーを削除し、その設定がデプロイされているホストのファイルシステムから設定ファイルを削除する必要があります。

手順

  1. Satellite Web UI で、Infrastructure > Virt-who configurations に移動します。
  2. 削除する設定の Actions リストから Delete を選択します。
  3. virt-who 設定を削除するホストで、設定ファイルを削除します。

    # rm /etc/virt-who.d/conf_name.conf

A.3. virt-who のトラブルシューティングの方法

virt-who のステータスの確認

Satellite Web UI で virt-who の ステータスを確認するには、Infrastructure > Virt-who configurations に移動して、各 virt-who インスタンスの Status 列を確認します。ステータスが OK の場合は、virt-who が Satellite Server に正常に接続されており、各ハイパーバイザーによって管理されている仮想マシンを報告していることを示します。

CLI を使用してすべての virt-who インスタンスのステータスをリストするには、Satellite Server で以下のコマンドを実行します。

# hammer virt-who-config list

このコマンドの出力には、virt-who の各インスタンスが Satellite Server に報告した日時が含まれます。

デバッグロギング

/var/log/rhsm/rhsm.log ファイルを確認します。このファイルに、virt-who はデフォルトでアクティビティーすべてをログに記録します。

詳細なロギングを有効にするには、virt-who 設定を変更します。

  • Satellite Web UI で Enable debugging output チェックボックスを選択します。
  • Hammer CLI で、--debug true オプションを追加します。

変更を有効にするには、設定を再デプロイします。

根本的な問題が解決したら、virt-who 設定を変更してデバッグを無効にし、設定を再デプロイします。

設定オプションのテスト

必要に応じて変更を加え、結果をテストします。virt-who は、設定ファイル、認証情報、仮想化プラットフォームへの接続のテストに役立つ 2 つのオプションを提供します。

  • virt-who --one-shot コマンドは、設定ファイルを読み取り、仮想マシンのリストを取得し、そのリストを Satellite Server に送信してから、直ちに終了します。
  • virt-who --print コマンドは設定ファイルを読み取り、仮想マシンのリストを出力しますが、そのリストを Satellite Server には送信しません。

ハイパーバイザーとその仮想マシンのリストは JSON 形式で出力されます。以下は、VMware vSphere インスタンスからの抜粋です。すべてのハイパーバイザーからの出力は以下の設定になっています。

{
    "guestId": "422f24ed-71f1-8ddf-de53-86da7900df12",
    "state": 5,
    "attributes": {
        "active": 0,
        "virtWhoType": "esx",
        "hypervisorType": "vmware"
    }
},

複数の virt-who 設定ファイルを使用する場合の問題の特定

1 つのサーバーに virt-who 設定ファイルが複数ある場合は、1 度に 1 つのファイルを別のディレクトリーに移動し、各ファイルの移動後にテストを行います。問題が発生しなくなった場合、問題の原因は直近で移動したファイルにあることになります。問題の解決後、virt-who 設定ファイルを元の場所に戻します。

または、--config オプションを使用して場所を指定することにより、各ファイルを移動後にテストできます。以下に例を示します。

# virt-who --debug --one-shot --config /tmp/conf_name.conf

重複するハイパーバイザーの特定

ハイパーバイザーが重複すると、サブスクリプションとエンタイトルメントにエラーが発生する可能性があります。以下のコマンドを入力して、重複したハイパーバイザーの有無を確認します。

# systemctl stop virt-who
# virt-who -op >/tmp/virt-who.json
# systemctl start virt-who
# cat /tmp/virt-who.json | json_reformat | grep name | sort | uniq -c | sort -nr | head -n10
  3    "name": "localhost"
  1    "name": "rhel1.example.com"
  1    "name": "rhel2.example.com"
  1    "name": "rhel3.example.com"
  1    "name": "rhel4.example.com"
  1    "name": "rhvh1.example.com"
  1    "name": "rhvh2.example.com"
  1    "name": "rhvh3.example.com"
  1    "name": "rhvh4.example.com"
  1    "name": "rhvh5.example.com"

この例では、3 つのハイパーバイザーに同じ FQDN (localhost) がありますが、固有の FQDN を使用するようにこれを修正する必要があります。

重複した仮想マシンの特定

以下のコマンドを入力して、重複した仮想マシンを確認します。

# systemctl stop virt-who
# virt-who -op >/tmp/virt-who.json
# systemctl start virt-who
# cat /tmp/virt-who.json | json_reformat | grep "guestId" | sort | uniq -c | sort -nr | head -n10

ハイパーバイザーの数の確認

以下のコマンドを入力して、現在報告されているハイパーバイザーの virt-who の数を確認します。

# systemctl stop virt-who
# virt-who -op >/tmp/virt-who.json
# systemctl start virt-who
# cat /tmp/virt-who.json | json_reformat | grep name | sort | uniq -c | wc -l

仮想マシンの数の確認

以下のコマンドを入力し、virt-who が現在報告している仮想マシンの数を確認します。

# systemctl stop virt-who
# virt-who -op >/tmp/virt-who.json
# systemctl start virt-who
# cat /tmp/virt-who.json | json_reformat | grep "guestId" | sort | uniq -c | wc -l

A.4. virt-who のトラブルシューティングシナリオ

virt-who が仮想化プラットフォームとの接続に失敗する

virt-who がハイパーバイザーまたは仮想化マネージャーへの接続に失敗する場合は、Red Hat Subscription Manager のログファイル /var/log/rhsm/rhsm.log を確認します。No route to host というメッセージが表示される場合は、ハイパーバイザーが間違ったポートでリッスンしている可能性があります。この場合は virt-who 設定を変更し、Hypervisor Server 値に正しいポート番号を追加します。

virt-who 設定を変更したら、この設定を再デプロイする必要があります。

virt-who がローカルネットワークの HTTP プロキシー経由で仮想化プラットフォームに接続できない

virt-who が HTTP プロキシー経由でハイパーバイザーや仮想化マネージャーに接続できない場合は、ローカルトラフィックが通過できるようにプロキシーを設定するか、virt-who 設定を変更してプロキシーを使用しないようにします。

virt-who 設定を変更したら、この設定を再デプロイする必要があります。

virt-who が、Red Hat Satellite Server へのホストゲストマッピングの報告に失敗する

virt-who は、以下の状況で Red Hat Satellite Server へのホストゲストマッピングの報告に失敗します。

  1. virt-who が Red Hat Satellite Server に設定およびデプロイされている。
  2. Red Hat Satellite Server の rhsm.conf ファイルがプロキシーサーバーを使用して subscription.rhsm.redhat.com および cdn.redhat.com と通信するように設定されている。
  3. /etc/sysconfig/virt-whono_proxy=* 設定があるにもかかわらず、subscription-manager で無視され、virt-who はプロキシーサーバー経由で Satellite Server に接続しようとするが失敗する。

この場合は、以下のパラメーターを /etc/rhsm/rhsm.conf ファイルに追加します。

no_proxy = satellite.example.com

法律上の通知

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.