第2章 virt-who インストールおよび設定の概要
仮想 Red Hat Enterprise Linux サーバーが VDC サブスクリプションを要求して、付与されるようにするには、virt-who デーモンが各仮想化マネージャーまたはハイパーバイザーに接続して、ホストされる仮想マシンを Red Hat Satellite Server 6 にレポートするように設定する必要があります。この接続を確立するには、以下のタスクを順に完了してください。
- お使いの環境に適した設定を決定します。
- virt-who デーモンの要件をレビューして、すべてを満たしていることを確認します。
- virt-who デーモンが Satellite Server または外部の Capsule Server のいずれかにインストールされていない場合は、この目的のために Red Hat Enterprise Linux のインスタンスをインストールします。
- virt-who デーモンをインストールします。
- virt-who 設定を作成します。
- virt-who 設定をデプロイします。
- virt-who デーモンとハイパーバイザーとの間の接続を確立します。
2.1. 設定オプション
virt-who を必要とする最も単純な構成は、ハイパーバイザーまたは仮想化マネージャーが 1 つ、組織が 1 つ、ハイパーバイザー技術が 1 つと、Satellite Server に直接レポートする virt-who インスタンスとなります。多くの組織はこれよりも複雑になるため、以下の条件に対応するように virt-who のインストールと設定を変更できます。
- Satellite の複数の組織
- 複数のハイパーバイザー
- 複数のハイパーバイザー技術
- HTTP プロキシー
2.1.1. 複数の組織
1 つの virt-who インスタンスが、複数の組織に関連付けられている Satellite Server 仮想マシンにレポートすることができます。
2.1.2. 複数のハイパーバイザー
1 つの virt-who インスタンスを複数のハイパーバイザーに接続して、それぞれがホストする仮想マシンをレポートできます。Red Hat は、virt-who 設定ファイルごとにハイパーバイザーまたは仮想マネージャーを 1 つ使用することを推奨します。
ハイパーバイザーが複数になると、virt-who は各ハイパーバイザーを並行してクエリーするため、応答しないハイパーバイザーがあっても、virt-who のクエリーが停止したり、遅延したりする確率が減ります。
2.1.3. 複数のハイパーバイザー技術
1 つの virt-who インスタンスは、複数のベンダーから複数のハイパーバイザーに接続できます。Red Hat は、virt-who 設定ファイルごとにハイパーバイザー技術を 1 つ使用することを推奨します。
2.1.3.1. Red Hat ハイパーバイザー
Red Hat Virtualization (バージョン 4.0 以降) および Red Hat Enterprise Virtualization (バージョン 3.6 以降) は、Red Hat Enterprise Linux に構築されたエンタープライズクラスのサーバーおよびデスクトップの仮想化プラットフォームです。両製品は virt-who によってサポートされます。Red Hat ハイパーバイザーの種類および数量は、virt-who に対するインストールプロセスを決定します。詳細は「前提条件」を参照してください。
2.1.3.1.1. Red Hat Enterprise Virtualization (バージョン 3.6 以前)
Red Hat Enterprise Virtualization (バージョン 3.6 以前) には、2 種類のハイパーバイザーが含まれます。
- Red Hat Enterprise Virtualization ハイパーバイザー (RHEV-H)
-
これは、Red Hat Enterprise Linux に基づいた最小オペレーティングシステムです。ファイルシステムへのアクセスと root へのアクセスが制限されます。
yum
からの更新はできません。 - Red Hat Enterprise Linux host (RHEL-H)
- これは、特定のソフトウェアチャンネルにサブスクライブし、ハイパーバイザーパッケージがインストールされている Red Hat Enterprise Linux ホストです。
2.1.3.1.2. Red Hat Virtualization (バージョン 4.0 以降)
Red Hat Virtualization (バージョン 4.0 以降) には、2 種類のハイパーバイザーが含まれます。
- Red Hat Virtualization ホスト (RHVH)
-
これは、Red Hat Enterprise Linux に基づいた最小オペレーティングシステムです。RHEV-H とは異なり、Red Hat Virtualization ホストは yum から更新できます。
subscription-manager
とvirt-who
はデフォルトでインストールされています。この種のハイパーバイザーは Satellite Server に登録されている必要があります。 - Red Hat Enterprise Linux host (RHEL-H)
- これは、特別なソフトウェアチャンネルにサブスクライブされ、ハイパーバイザーパッケージがインストールされている Red Hat Enterprise Linux ホストです。この種のハイパーバイザーは、Red Hat Enterprise Virtualization (バージョン 3.6 以降) の RHEL-H ハイパーバイザーに等しくなります。
2.1.4. インストールの場所
virt-who をインストールする場所、1 つまたは複数のインスタンスが必要かどうかは、ハイパーバイザーや仮想マネージャーによって決まります。Microsoft Hyper-V および VMware vSphere については、Satellite または専用のインスタンスのいずれかに virt-who をインストールします。Red Hat ハイパーバイザーでこの決定を行うには、さらなる分析が必要です。
2.1.4.1. RHEV-H
RHEV-H ハイパーバイザーをお持ちの場合は、Satellite または Red Hat Enterprise Linux の専用インスタンスのいずれかに virt-who をインストールします。
2.1.4.2. RHV-H
RHV-H ハイパーバイザーをお持ちの場合は、各 RHV-H ハイパーバイザーに virt-who をインストールし、Satellite Server にハイパーバイザーを登録します。
2.1.4.3. RHEL-H のみ
RHEL-H ハイパーバイザーをお持ちの場合は、各 RHEL-H ハイパーバイザーに virt-who をインストールし、Satellite Server にそのハイパーバイザーを登録します。
2.1.4.4. 混合 Red Hat ハイパーバイザー
Red Hat ハイパーバイザーの種類が複数ある場合に、重複したホストが報告されないようにするには、追加の設定が必要です。
環境内の RHVH、RHEL-H、および RHEV-H のハイパーバイザーの合計
- RHVH と RHEL-H のハイパーバイザーの合計が、RHEV-H ハイパーバイザーの数より多い場合は、RHEV-H の全ハイパーバイザーが virt-who により報告されないように除外する必要があります。
- RHEV-H ハイパーバイザーの数が、RHVH ハイパーバイザーと RHEL-H ハイパーバイザーの合計より多い場合は、RHVH ハイパーバイザーと RHEL-H ハイパーバイザーをすべて除外します。
特定のハイパーバイザーを除外する方法は「virt-who アクセスの範囲の制限」を参照してください。
2.1.5. virt-who アクセスの範囲の制限
Red Hat Enterprise Linux やその他のオペレーティングシステムを実行する仮想マシンが含まれるハイブリット環境では、virt-who から一部のホストを除外することもできます。たとえば、一部のハイパーバイザーが Microsoft Windows Server インスタンスだけをホストする場合に、virt-who エージェントがこのホストをレポートする利点はありません。
virt-who が報告するホストの数を減らすには、以下の方法のいずれかまたは両方を使用します。どちらの方法も目的は同じですが、フィルター方法は virt-who のネイティブの機能であるため、デフォルトと見なされます。
- フィルターを使用して、包含または除外するホストを指定します。
- ホストのサブネットへのアクセスを制限します。
2.1.5.1. ホストのフィルタリング
各 virt-who インスタンスに対して、virt-who が Satellite Server にレポートするホストをフィルタリングできます。一覧のホストは除外または包含できます。各 virt-who インスタンスに対して有効なフィルタリング方法は 1 つです。
virt-who の設定時に、ブラックリストまたはホワイトリストに登録するホストをコンマ区切りで指定します。ワイルドカードおよび正規表現がサポートされます。ホストの名前に特殊文字が含まれる場合は引用符で囲みます。
virt-who が検出するホストは、Satellite ではホスト名 (推奨およびデフォルト) または一意の ID のいずれかで識別されます。ホストは、ホストを特定するのに使用する方法に従ってフィルタリングされる必要があります。たとえば、ホスト名で識別された場合は、ホスト名で除外または包含される必要があります。
2.1.5.2. 特定のホストへのアクセス制限
virt-who が使用するアカウントに、包含するホストに対する読み取り専用アクセスを設定します。ホストへのアクセス制限をすることで、virt-who デーモンはアクセス可能なホストのみを検索、取得します。
2.1.6. HTTP プロキシー
お使いの環境で HTTP プロキシーサーバーを使用する場合は、HTTP プロキシーで virt-who を使用するための追加設定が必要になります。
Satellite と Content Delivery Network (CDN) との間にデフォルトで HTTP プロキシーがある場合、virt-who トラフィックはプロキシーサーバーも通過しようとします。内部トラフィック (virt-who トラフィック) ではなく外部トラフィックだけを許可するように HTTP プロキシーを設定すると、これが失敗する場合があります。Satellite Server がハイパーバイザーと同じローカルネットワークにある場合もおそらく失敗します。
この問題を回避するには、プロキシーを使用しないように virt-who を設定するか、ローカルネットワークトラフィックが通るように HTTP プロキシーを設定するか、追加の squid プロキシーを設定できます。詳細は「Virt-who が、ローカルネットワークで HTTP プロキシーを介して仮想化マネージャーまたはハイパーバイザーに接続しようとして失敗した場合」を参照してください。
- virt-who で、Satellite Server が外部ネットワークに接続するのに使用するプロキシーとは異なるプロキシーを使用するようにする必要がある場合は、詳細を「内部プロキシーを使用するように virt-who の設定」で参照してください。
2.2. 前提条件
virt-who のインストールに進む前に、以下の前提条件を満たしていることを確認してください。
2.2.1. 認証要件
virt-who の各インスタンスには、各仮想化マネージャーまたは個々のハイパーバイザーへの読み取り専用アクセスと、Satellite Server への書き込みアクセスが必要です。
ハイパーバイザー
VMware vCenter、Red Hat Virtualization Manager、個々のハイパーバイザーなど、 各仮想化マネージャーへの読み取り専用アクセスを持つアカウントを作成します。このアクセスを使用して、virt-who はゲストの仮想マシンの一覧を取得し、これを Satellite Server にレポートします。各接続は独立しているため、必要に応じて virt-who インスタンスごとに異なるアカウントを使用できます。一般的に サービスアカウント として知られる各アカウントは、この目的のためだけに使用し、読み取り専用アクセスと、有効期限が設定されていないパスワードを設定するようにしてください。
アカウントに Red Hat Virtualization Manager への読み取り専用アクセスがある場合は十分ではありません。virt-who で Red Hat Virtualization Hypervisor ホスト情報を取得できるようにするには、Red Hat Enterprise Virtualization 環境に 管理者 アカウントタイプと ログインパーミッション だけが有効になっているロールを新たに作成して、そのアカウントに割り当てる必要があります。
Red Hat Satellite
Satellite web UI または hammer のいずれかを使用して作成したすべての virt-who 設定は、virt-who 認証に対する一意のサービスユーザーを作成します。このユーザーの名前は virt_who_reporter$id で、ランダムに生成されたパスワードが設定されています。virt-who ユーザーには、virt-who のレポートを実行できるだけの最低限のパーミッションが提供される Virt-who Reporter ロールが割り当てられています。このアカウントに手動設定することはできず、Satellite Server へのログインに使用することもできません。
2.2.2. ソフトウェア要件
Red Hat は、ネットワーク設定を簡略化し、提供するアベイラビリティーを最大にする virt-who を Satellite Server にインストールすることを推奨します。ただし、Red Hat Enterprise Linux ハイパーバイザーの場合は、virt-who デーモンをハイパーバイザーにインストールする必要があります。または、virt-who を外部の Capsule Server、もしくは Red Hat Enterprise Linux 7 (推奨) または Red Hat Enterprise Linux 6 の専用インスタンスにインストールできます。
Red Hat Enterprise Linux の専用インスタンスに virt-who をインストールする場合は、以下の手順を行なってください。
virt-who ホストの準備
Red Hat Enterprise Linux バージョン 7 (推奨) または 6 をインストールします。
CLI 環境のみが必要です。この手順の説明は『Red Hat Enterprise Linux 7 インストールガイド』または『Red Hat Enterprise Linux 6 インストールガイド』を参照してください。
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 \ --username=username \ --password=password \ --org=organization_label \ --auto-attach
virt-who とサブスクリプションサービスを接続するネットワークポートを開きます。
Red Hat Enterprise Linux 7 の場合:
# firewall-cmd --add-port="443/tcp" # firewall-cmd --add-port="443/tcp" --permanent
Red Hat Enterprise Linux 6 の場合:
# iptables -A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT # service iptables save
virt-who から、各仮想化マネージャーまたはハイパーバイザーに接続するネットワークポートを開きます。
- VMware vCenter: TCP ポート 443
- Microsoft Hyper-V: TCP ポート 5985
- Red Hat Enterprise Virtualization Manager 3.0 以前: TCP ポート 8443
- Red Hat Enterprise Virtualization Manager 3.1 以降: TCP ポート 443
Red Hat OpenStack Platform コンピュートノード: トランスポートのタイプによって異なり、SSH 通信のデフォルトは TCP ポート 22
ローカルの Red Hat OpenStack Platform コンピュートノード、およびローカルの Red Hat Enterprise Linux ハイパーバイザーへの virt-who 接続はローカル接続を使用し、ポートを開く必要はありません。
2.2.3. サブスクリプション
各組織の各ハイパーバイザーにホストベースのサブスクリプションが 1 つ必要です。サブスクリプションを組織間で共有することはできません。
詳細は「サブスクリプションの選択」を参照してください。