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

Red Hat Satellite 6.6

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

概要

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

第1章 はじめに

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

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

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 で コンテンツ > サブスクリプション に移動します。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 にインポートします。詳細は、『 コンテンツ管理ガイド』 の「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 サーバー

重要

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

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

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

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

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

手順

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

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

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 などのホストベースのサブスクリプションを割り当てます。

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

前提条件

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

手順

  1. Satellite Web UI で、ホスト > コンテンツホスト に移動します。
  2. コンテンツホスト 一覧で、サブスクリプションを割り当てる各ハイパーバイザーの名前の横にあるチェックボックスを選択します。
  3. アクションの選択 一覧から サブスクリプションの管理 を選択します。
  4. コンテンツホストの一括サブスクリプションウィンドウで、ホストベースのサブスクリプションを選択し、選択済み項目の追加 をクリックします。

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 で、インフラストラクチャー > Virt-who 設定 に移動します。
  2. 設定の作成 をクリックします。「新規の Virt-who 設定」ウィンドウで、各フィールドの詳細についてのヘルプアイコンをクリックできます。
  3. 設定の 名前 を入力します。
  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. Hypervisor Server フィールドに、この設定が適用されるサーバーの FQDN または IP アドレスを入力します。VMware vSphere の場合は、vCenter Server の FQDN または IP アドレスを使用します。その他のすべての製品の場合は、ハイパーバイザーの FQDN または IP アドレスを使用します。
  6. Hypervisor ユーザー名 フィールドには、ハイパーバイザーまたは仮想化マネージャーで作成した virt-who ユーザーの名前を入力します。
  7. Hypervisor Password フィールドに、virt-who ユーザーのパスワードを入力します。このパスワードは、設定をデプロイする際に暗号化されます。libvirt タイプを使用する場合、このフィールドは必須ではありません。
  8. Interval 一覧から、virt-who が新規の、または更新された仮想マシン情報を要求する頻度を選択します。仮想マシンには最長で 7 日間の一時的なサブスクリプションが付与されるため、頻繁な照会は必要なく、使用環境のサイズに適した間隔を選択できます。ほとんどの環境には、24 時間ごとが適しています。
  9. Satellite server FQDN を入力します。
  10. Hypervisor ID リストから、ホスト名または UUID を使用して Satellite Server でハイパーバイザーを識別するかどうかを選択します。
  11. フィルタリングのオプションを選択します。

    • デフォルトは 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 を入力します。

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

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

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
    --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 オプションを使用して指定する必要があります。

第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 で、インフラストラクチャー > Virt-who 設定 に移動します。
  2. virt-who 設定の名前をクリックします。
  3. デプロイ タブをクリックします。
  4. 設定スクリプト で、スクリプトのダウンロード をクリックします。
  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 で、インフラストラクチャー > Virt-who 設定 に移動します。
  2. virt-who 設定の名前をクリックします。
  3. Hammer コマンドクリップボードへのコピー をクリックします。
  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 で、インフラストラクチャー > Virt-who 設定 に移動します。
  6. virt-who 設定ファイルの名前をクリックします。
  7. デプロイ タブをクリックします。
  8. 設定スクリプト で、スクリプトのダウンロード をクリックします。
  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 で、インフラストラクチャー > Virt-who 設定 に移動します。
  2. 変更する virt-who 設定を見つけて、アクション 列で 編集 をクリックします。
  3. 変更するフィールドを編集します。
  4. 送信 をクリックします。
  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 で、インフラストラクチャー > Virt-who 設定 に移動します。
  2. 削除する設定の アクション 一覧から 削除 を選択します。
  3. virt-who 設定を削除するホストで、設定ファイルを削除します。

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

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

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

Satellite Web UI で virt-who の ステータスを確認するには、インフラストラクチャー > Virt-who 設定 に移動して、各 virt-who インスタンスの ステータス 列をチェックします。ステータスが 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 サブスクリプションマネージャーのログファイル /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 サーバーへのホストゲストマッピングの報告に失敗する

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

  1. virt-who が Red Hat Satellite サーバーに設定およびデプロイされている。
  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