Red Hat Satellite での仮想マシンサブスクリプションの設定
virt-who を使用したホストベースのサブスクリプションの管理
Red Hat Satellite Documentation Team
satellite-doc-list@redhat.com
概要
Red Hat ドキュメントへのフィードバック (英語のみ)
弊社ドキュメントに対するご意見をお聞かせください。ドキュメントの改善点があればお知らせください。
特定の部分について簡単なコメントをお寄せいただく場合は、以下をご確認ください。
ドキュメントの表示が Multi-page HTML 形式になっていていることを確認してください。
ドキュメントの右上隅に Feedback ボタンがあることを確認してください。
- マウスカーソルを使用して、コメントを追加するテキストの部分を強調表示します。
- 強調表示されたテキストの下に表示される Add Feedback ポップアップをクリックします。
- 表示される手順に従ってください。
Bugzilla を介してフィードバックを送信するには、新しいチケットを作成します。
- Bugzilla の Web サイトに移動します。
- Component (コンポーネント) として Documentation を使用します。
- Description フィールドに、ドキュメントの改善に向けたご提案を記入してください。ドキュメントの該当部分へのリンクも追加してください。
- 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 で コンテンツ > サブスクリプション に移動します。Virt-Who が必要 列にチェックマークがある場合は、そのサブスクリプションを使用するように virt-who を設定する必要があります。
仮想マシンのサブスクリプションプロセス
以下の図では、仮想マシンが virt-who で報告されていない場合のサブスクリプションワークフローを紹介しています。

Satellite は仮想マシンをプロビジョニングします。
仮想マシンは、Satellite Server にサブスクリプションを要求します。
Satellite Server が仮想マシンに最長で 7 日間有効となる一時的なサブスクリプションを付与し、仮想マシンが属するハイパーバイザーを判別します。
virt-who がハイパーバイザーまたは仮想化マネージャーに接続し、その仮想マシンに関する情報を要求します。
ハイパーバイザーまたは仮想化マネージャーが、それぞれの UUID を含む仮想マシンの一覧を virt-who に返します。
virt-who は、仮想マシンとそれぞれのハイパーバイザーの一覧を Satellite Server に報告します。
十分なエンタイトルメントが利用可能な場合には、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 のすべてのオブジェクトに対する読み取り専用アクセスが必要です。
手順の概要
- 「各仮想化プラットフォーム向けの virt-who の設定」:このセクションの表を利用して、ご使用の仮想化プラットフォーム向けの virt-who の設定およびデプロイ方法を計画します。
- 2章仮想マシンのアクティベーションキーの作成:自動アタッチが有効になっており、サブスクリプションが割り当てられていないアクティベーションキーを作成します。
- 3章ホストベースのサブスクリプションのハイパーバイザーへの割り当て:使用する予定のハイパーバイザーすべてにホストベースのサブスクリプションを割り当てます。
- 4章virt-who 設定の作成:各ハイパーバイザーまたは仮想化マネージャー向けに virt-who 設定を作成します。
- 5章virt-who 設定のデプロイ:Satellite が生成したスクリプトを使用して、virt-who 設定をデプロイします。
- 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章 仮想マシンのアクティベーションキーの作成
以下の手順に従って、自動アタッチが有効な状態で、サブスクリプションが割り当てられていないアクティベーションキーを作成します。このアクティべーションキーを使用して仮想マシンを登録すると、ハイパーバイザーにホストベースのサブスクリプションが割り当てられている場合、仮想マシンはそのハイパーバイザーからサブスクリプションを継承します。
アクティベーションキーの詳細は、コンテンツの管理 の アクティベーションの管理 を参照してください。
手順
- Satellite Web UI で Content > Activation keys に移動して、Create Activation Key をクリックします。
- 名前 フィールドに、アクティベーションキーの名前を入力します。
- Unlimited Hosts チェックボックスが選択されていることを確認します。または、制限を設定する場合は Unlimited Hosts チェックボックスの選択を解除し、制限 フィールドで、アクティベーションキーを使用して登録できる仮想マシンの最大数を入力します。
- 説明 フィールドに、アクティベーションキーの説明を入力します。
- 環境 一覧から、使用する環境を選択します。
- コンテンツビュー リストから、使用するコンテンツビューを選択します。
- 送信 をクリックします。
- アクティベーションキー ウィンドウに新規のアクティベーションキーが表示されたら、そのキーの名前をクリックします。
- サブスクリプション タブをクリックします。
- 自動割り当て が Yes に設定されていることを確認します。設定されていない場合は、編集アイコンをクリックして 保存をクリックします。
このアクティベーションキーにはサブスクリプションを追加しないでください。
CLI をご利用の場合
アクティベーションキーを作成します。
# 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"
アクティベーションキーで自動アタッチを有効にします。
# 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 にインポートします。
- 使用する予定のハイパーバイザーすべてに対応するために、ホストベースのサブスクリプションに十分なエンタイトルメントがあることを確認します。
手順
- Satellite Web UI で、ホスト > コンテンツホスト に移動します。
- コンテンツホスト 一覧で、サブスクリプションを割り当てる各ハイパーバイザーの名前の横にあるチェックボックスを選択します。
- アクションの選択 一覧から サブスクリプションの管理 を選択します。
- コンテンツホストの一括サブスクリプションウィンドウで、ホストベースのサブスクリプションを選択し、選択済み項目の追加 をクリックします。
CLI をご利用の場合
Satellite Server で、利用可能なサブスクリプションを一覧表示して、ホストベースのサブスクリプション ID を検索します。
# hammer subscription list \ --organization-id organization_id
ホストベースのサブスクリプションをハイパーバイザーに割り当てます。
# 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
ファイルに追加され、指定されたハイパーバイザーまたは仮想化マネージャーにのみ適用されます。Interval、Enable debugging output、HTTP 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 のすべてのオブジェクトに対する読み取り専用アクセスが必要です。
手順
- Satellite Web UI で、インフラストラクチャー > Virt-who 設定 に移動します。
- 設定の作成 をクリックします。新規の Virt-who 設定ウィンドウで、各フィールドの詳細についてのヘルプアイコンをクリックできます。
- 設定の 名前 を入力します。
ハイパーバイザーのタイプ 一覧から仮想化プラットフォームを選択します。
- Red Hat Enterprise Linux Virtualization (KVM)、Red Hat Virtualization、または Red Hat OpenStack Platform: libvirt
- VMware vSphere: esx
- Microsoft Hyper-V: hyperv
- rhevm および xen のハイパーバイザータイプはサポート対象外で、kubevirt ハイパーバイザータイプはテクノロジープレビュー機能としてのみ提供される点に注意してください。
- Hypervisor Server フィールドに、この設定が適用されるサーバーの FQDN または IP アドレスを入力します。VMware vSphere の場合は、vCenter Server の FQDN または IP アドレスを使用します。その他のすべての製品の場合は、ハイパーバイザーの FQDN または IP アドレスを使用します。
- Hypervisor ユーザー名 フィールドには、ハイパーバイザーまたは仮想化マネージャーで作成した virt-who ユーザーの名前を入力します。
- Hypervisor Password フィールドに、virt-who ユーザーのパスワードを入力します。このパスワードは、設定をデプロイする際に暗号化されます。libvirt タイプを使用する場合、このフィールドは必須ではありません。
- Interval 一覧から、virt-who が新規の、または更新された仮想マシン情報を要求する頻度を選択します。仮想マシンには最長で 7 日間の一時的なサブスクリプションが付与されるため、頻繁な照会は必要なく、使用環境のサイズに適した間隔を選択できます。ほとんどの環境には、24 時間ごとが適しています。
- Satellite server FQDN を入力します。
- Hypervisor ID リストから、ホスト名または UUID を使用して Satellite Server でハイパーバイザーを識別するかどうかを選択します。
フィルターリングのオプションを選択します。
- デフォルトは Unlimited です。この設定の対象となったハイパーバイザーはすべて virt-who によって照会されます。照会するハイパーバイザーを制限する必要がない場合は、このオプションを使用します。
- ハイパーバイザーを Whitelist または Blacklist に設定することができます。たとえば、一部のハイパーバイザーが Microsoft Windows サーバーの仮想マシンのみを実行する必要がある場合、そのハイパーバイザーは virt-who によって報告される必要はありません。
- Whitelist または Blacklist を選択した場合: Filter hosts または Exclude hosts フィールドに、選択した Hypervisor ID に合わせてハイパーバイザーのコンマ区切りの一覧を入力します。たとえば、ハイパーバイザーをホスト名で識別する場合には、ホスト名を使用して追加または除外する必要があります。ハイパーバイザーの名前に特殊文字が含まれている場合は、それらの文字を引用符で囲みます。ワイルドカードと正規表現はサポートされます。ただし、正規表現の使用時はバックスラッシュをエスケープする必要がある点に注意してください。
- esx タイプおよび Whitelist または Blacklist を選択している場合: Filter host parents または Exclude host parents フィールドに、クラスターのコンマ区切りの一覧を入力します。ホワイトリストに指定されたクラスターのハイパーバイザーは virt-who により報告されます。ブラックリストに指定されたクラスター内のハイパーバイザーは virt-who により報告されません。クラスターの名前に特殊文字が含まれている場合は、この特殊文字を引用符で囲みます。ワイルドカードと正規表現はサポートされます。ただし、正規表現の使用時はバックスラッシュをエスケープする必要がある点に注意してください。
- オプション: トラブルシューティング用にデバッグ出力が必要な場合は、Enable debugging output チェックボックスを選択します。
オプション: virt-who がデプロイされたサーバーおよびハイパーバイザーまたは仮想化マネージャーとの通信に使用する HTTP Proxy を入力します。(例: http://proxy.example.com:3128)。
プロキシーを使用しない場合は、このフィールドを空白のままにします。これは Ignore Proxy フィールドに
*
を入力するのと同じ結果になります。- オプション: Ignore Proxy フィールドに、既存のプロキシー設定をバイパスするためにホスト名、IP アドレス、またはドメインのコンマ区切りの一覧を入力します。
- 送信 をクリックします。
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
ハイパーバイザータイプはテクノロジープレビュー機能としてのみ提供される点に注意してください。
-
Red Hat Enterprise Linux Virtualization (KVM)、Red Hat Virtualization、または Red Hat OpenStack Platform:
- 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 サーバーに、設定ファイルをデプロイする必要があります。
- ハイパーバイザーまたは Capsule Server にファイルをデプロイするには、「ハイパーバイザーでの virt-who 設定のデプロイ」 を参照してください。
- Satellite Server にファイルをデプロイするには、「Satellite Server での virt-who 設定のデプロイ」 を参照してください。
- 別の Red Hat Enterprise Linux サーバーにファイルをデプロイするには、「別の Red Hat Enterprise Linux サーバーでの virt-who 設定のデプロイ」 を参照してください。
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 設定を作成します。
手順
- Satellite Web UI で、インフラストラクチャー > Virt-who 設定 に移動します。
- virt-who 設定の名前をクリックします。
- デプロイ タブをクリックします。
- 設定スクリプト で、スクリプトのダウンロード をクリックします。
このスクリプトをハイパーバイザーにコピーします。
# scp deploy_virt_who_config_1.sh root@hypervisor.example.com:
デプロイメントスクリプトを実行可能にし、実行します。
# chmod +x deploy_virt_who_config_1.sh # sh deploy_virt_who_config_1.sh
デプロイメントが完了したら、このスクリプトを削除します。
# 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 設定を作成します。
手順
- Satellite Web UI で、インフラストラクチャー > Virt-who 設定 に移動します。
- virt-who 設定の名前をクリックします。
- Hammer コマンド で クリップボードへのコピー をクリックします。
- 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 設定を作成します。
手順
Red Hat Enterprise Linux サーバーで、Satellite Server の CA 証明書をインストールします。
# rpm -ivh http://satellite.example.com/pub/katello-ca-consumer-latest.noarch.rpm
Red Hat Enterprise Linux サーバーを Satellite Server に登録します。
# subscription-manager register \ --org=organization_label \ --auto-attach
virt-who と Satellite Server の間の通信用のネットワークポートを開きます。
# firewall-cmd --add-port="443/tcp" # firewall-cmd --add-port="443/tcp" --permanent
virt-who と各ハイパーバイザーまたは仮想化マネージャーとの間の通信用にネットワークポートを開きます。
- VMware vCenter: TCP ポート 443
- Microsoft Hyper-V: TCP ポート 5985
- Satellite Web UI で、インフラストラクチャー > Virt-who 設定 に移動します。
- virt-who 設定ファイルの名前をクリックします。
- デプロイ タブをクリックします。
- 設定スクリプト で、スクリプトのダウンロード をクリックします。
このスクリプトを Red Hat Enterprise Linux サーバーにコピーします。
# scp deploy_virt_who_config_1.sh root@rhel.example.com:
デプロイメントスクリプトを実行可能にし、実行します。
# chmod +x deploy_virt_who_config_1.sh # sh deploy_virt_who_config_1.sh
デプロイメントが完了したら、このスクリプトを削除します。
# rm deploy_virt_who_config_1
第6章 ホストベースのサブスクリプションを使用する仮想マシンの登録
自動アタッチアクティベーションキーを使用して仮想マシンを登録し、これらのマシンがハイパーバイザーからサブスクリプションを継承するようにします。
アクティベーションキーの詳細は、コンテンツの管理 の アクティベーションの管理 を参照してください。
前提条件
- 自動アタッチが有効になっており、サブスクリプションが割り当てられていないアクティベーションキーを作成します。
- ホストベースのサブスクリプションを、仮想マシンのハイパーバイザーに割り当てます。
- 仮想マシンのハイパーバイザーをクエリーする virt-who 設定を作成し、デプロイします。
手順
仮想マシンを Satellite Server に登録されるように設定します。
# yum install http://satellite.example.com/pub/katello-ca-consumer-latest.noarch.rpm
自動アタッチアクティベーションキーを使用して仮想マシンを登録します。
# 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 設定を更新して再デプロイする必要があります。
手順
- Satellite Web UI で、インフラストラクチャー > Virt-who 設定 に移動します。
- 変更する virt-who 設定を見つけて、アクション 列で 編集 をクリックします。
- 変更するフィールドを編集します。
- 送信 をクリックします。
- 変更された virt-who 設定を再度デプロイします。
CLI をご利用の場合は、以下を実行します。
Satellite Server で
hammer virt-who-config update
コマンドを入力して、変更する設定の名前、および変更するオプションの新しい値を指定します。設定名を変更する場合は、--new-name
オプションを使用する必要があります。# hammer virt-who-config update \ --name current_name \ --new-name new_name \ --interval 1440
- 変更された virt-who 設定を再度デプロイします。
A.2. 既存の virt-who 設定の削除
既存の virt-who 設定を削除するには、まず Satellite Web UI で設定のエントリーを削除し、その設定がデプロイされているホストのファイルシステムから設定ファイルを削除する必要があります。
手順
- Satellite Web UI で、インフラストラクチャー > Virt-who 設定 に移動します。
- 削除する設定の アクション 一覧から 削除 を選択します。
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 Server へのホストゲストマッピングの報告に失敗する
virt-who は、以下の状況で Red Hat Satellite Server へのホストゲストマッピングの報告に失敗します。
- virt-who が Red Hat Satellite Server に設定およびデプロイされている。
-
Red Hat Satellite Server の
rhsm.conf
ファイルがプロキシーサーバーを使用して subscription.rhsm.redhat.com および cdn.redhat.com と通信するように設定されている。 -
/etc/sysconfig/virt-who
にno_proxy=*
設定があるにも拘らず、subscription-manager で無視され、virt-who はプロキシーサーバー経由で Satellite Server に接続しようとするが失敗する。
この場合は、以下のパラメーターを /etc/rhsm/rhsm.conf
ファイルに追加します。
no_proxy = satellite.example.com