Red Hat Training
A Red Hat training course is available for Red Hat Satellite
仮想インスタンスガイド
Red Hat Satellite 6.2 での使用向け
Red Hat Satellite Documentation Team
satellite-doc-list@redhat.com
概要
第1章 はじめに
デフォルトでは Red Hat Enterprise Linux インスタンスは、カスタマーポータルに登録され、そこからのコンテンツを取得するようになっています。
Red Hat Satellite Server 6 で管理する Red Hat Enterprise Linux インスタンスは、Satellite Server に登録され、そこからコンテンツや製品サブスクリプションを取得します。
現代の IT インフラストラクチャーは物理および仮想ハードウェアが混在しており、仮想化を活用して物理ハードウェアでは簡単に実現できない柔軟性やスケーラビリティーレベルを提供します。
Red Hat のサブスクリプションでは以下を提供します。
- サポートサービスへのアクセス
- コンテンツ配信およびホストされたリポジトリー
- ナレッジベース、フォーラム、ビデオなどのリソースへのアクセス
Red Hat のサブスクリプションモデルでは、物理サーバーの場合はサブスクリプションがソケット数やコア数などのマシンの物理属性に対応している必要があります。サブスクリプションは、ソケットまたはコアのペアに対応するように常に 1 セット 2 組で適用されます。仮想マシンのサブスクリプションを購入して、仮想 CPU 属性に合わせて適用することもできますが、より適切なサブスクリプションが他にあります。ハイパーバイザーにはホストベースのサブスクリプションが適用され、それによりハイパーバイザーには仮想マシンにサブスクリプションを提供する資格が与えられます。ホストベースのサブスクリプションでは、仮想 CPU の構成に関係なく、ゲストごとに 1 つのサブスクリプションが必要です。
1.1. サポートされる仮想化プラットフォーム
Virtual Data Center (VDC) サブスクリプションを適用可能な、サポートのある仮想化プラットフォームは以下のとおりです。
- Red Hat Enterprise Virtualization Manager (RHEV-M)
- Red Hat Enterprise Linux ハイパーバイザー
- VMware vSphere
Microsoft Hyper-V
注記virt-who
デーモンは現在、Microsoft System Center 2012 R2 Virtual Machine Manager (SCVMM) のサポートはしていません。virt-who
の接続先の Microsoft Hyper-V ホスト毎にvirt-who
の設定ファイルが必要です。
VDC サブスクリプションは、ハイパーバイザー自体ではなく、ハイパーバイザーのゲスト仮想マシンにのみ適用されます。Red Hat Enterprise Linux ハイパーバイザーが必要な全仮想化プラットフォーム向けに、そのハイパーバイザーは独自のサブスクリプションが必要です。
1.2. サブスクリプションの選択
Red Hat は、仮想マシンのプロビジョニング時に柔軟性を高めることができるため、仮想マシンがサブスクリプションを継承できるようなサブスクリプションを推奨しますが、お客様次第で、お使いの環境の要件に従って判断をしてください。どのサブスクリプションがお使いの環境のニーズに最適化が不明な場合には、Red Hat アカウントマネージャーに相談してアドバイスを受けるようにしてください。Red Hat サブスクリプションモデルに関する詳細は、Red Hat サブスクリプション管理の「Subscription Concepts and Workflows」のガイドを参照してください。
以下は、継承可能なサブスクリプションを提供する Red Hat のサブスクリプション例です。
- Red Hat Enterprise Linux for Virtual Datacenters
- Red Hat Enterprise Linux with Smart Virtualization and Management
本ガイドでは、すべての例で Red Hat Enterprise Linux for Virtual Datacenters (VDC) サブスクリプションを使用します。継承可能なサブスクリプションはすべて同じワークフローとなっています。
1.2.1. virt-who が必要かどうかの確認
virt-who デーモンが必要かどうかを確認するには、Red Hat Certificate Tool を使用するか、Red Hat サポートにお問い合わせください。Red Hat Certificate Tool (rct) のコマンドラインは、サブスクリプションのマニフェストファイルを読み込み、マニフェストの詳細をプレーンテキストで表示します。Red Hat Certificate Tool は、Red Hat Enterprise Linux 7.3 または Fedora 24 の subscription-manager-1.17.10 (以降) パッケージに含まれています。
Red Hat Certificate Tool でのサブスクリプションマニフェストの検証
- カスタマーポータルからサブスクリプションマニフェストをダウンロードします。
Red Hat Certificate Tool コマンドラインを実行します。
# rct cat-manifest --no-content manifest_file.zip
以下の例は OpenShift Enterprise, Premium (1-2 Sockets) サブスクリプションです。
Subscription: Name: OpenShift Enterprise, Premium (1-2 Sockets) Quantity: 50 Created: 2016-09-16T01:47:59.000+0000 Start Date: 2016-07-04T04:00:00.000+0000 End Date: 2017-07-04T03:59:59.000+0000 . . . Virt Limit: unlimited Requires Virt-who: True
rct
の出力に Virt Limit: unlimited
、Requires Virt-who: True
または両方が含まれる場合には、virt-who デーモンが必要です。この例では両方が含まれているため、virt-who デーモンが必要であることが確定します。
1.3. 仮想ゲストのサブスクリプションの適用
Virtual Datacenter サブスクリプションは、Red Hat が提供するホストベースのサブスクリプション 1 種です。ホストベースのサブスクリプションは、ホストに適用され、ゲストに継承されます。ホストベースのサブスクリプションは、仮想化マネージャーまたはハイパーバイザーにアタッチするプールおよび仮想ゲストがサブスクリプションを継承するプールの 2 つのパーツが含まれています。仮想化マネージャーまたはハイパーバイザーのサブスクリプションでは製品コンテンツへのエンタイトルメントは提供されません。
仮想マシンを正しくプロビジョニングしてサブスクリプションを継承させるには、以下を実行する必要があります。
- ホストベースのサブスクリプションがハイパーバイザーにアタッチされていることを確認します。ホストおよび仮想ホストのプロビジョニングの詳細は、『Red Hat Satellite 6 Provisioning Guide』を参照してください。
-
virt-who
デーモンをインストール、設定します。本ドキュメントでは、順を追って必要な手順を説明します。
1.3.1. VDC サブスクリプションの確認
VDC サブスクリプションおよび関連のサブスクリプションプールが利用できることを確認するには、Satellite Web UI を開いて、コンテンツ → Red Hat サブスクリプション に移動します。たとえば、VDC サブスクリプションを単一の仮想化マネージャーまたはハイパーバイザーに登録している場合には、サブスクリプションプールは以下のように表示されます。
Red Hat Enterprise Linux for Virtual Datacenters, Standard
1 件中 1 件 物理
このサブスクリプションプールは、以下のように VDC サブスクリプションの下に表示されます。
Red Hat Enterprise Linux for Virtual Datacenters, Standard (DERIVED SKU)
無制限 件中 1 件 vmhost1.example.com のゲスト
この例では、仮想マシンがサブスクライブされて、ハイパーバイザー vmhost1.example.com
からのサブスクリプションが継承されます。仮想マシンがサブスクライブされたことを確認するには、サブスクリプション数をクリックして (この例では 無制限 件中 1 件
)、アクティベーションキー
ドロップダウンリストから コンテンツホスト
を選択します。
1.4. 仮想マシンのサブスクリプションプロセス
仮想マシンの登録プロセスは以下のとおりです。
- 仮想マシンは、Satellite を使用してプロビジョニングされます。
- 仮想マシンは、Satellite Server からサブスクリプションを要求します。
- サブスクリプションマネージャーはこの時点では、この仮想マシンがどのホストの所属するかは分からないので、最大 24 時間有効となる、一時的なサブスクリプションが付与されます。
- virt-who デーモンは、仮想マネージャーまたはハイパーバイザーに接続し、ゲスト仮想マシンの詳細を要求します。デフォルトでは、この要求は 1 時間毎に出されますが、間隔は変更可能です。Red Hat サポートの依頼がない限り、Red Hat は、この値をデフォルトの状態に保つことを推奨します。
- 仮想化マネージャーまたはハイパーバイザーは、UUID などゲスト仮想マシン一覧を virt-who に返します。
- virt-who デーモンは、ゲスト仮想マシンの一覧を Satellite Server にレポートします。
- 次に、Satellite Server は、利用可能なサブスクリプションと、仮想マシンが必要とするサブスクリプションを照合します。必要なサブスクリプションがある場合には、仮想マシンに割り当てられ、サブスクリプションが完了します。
1.5. サブスクリプションのステータス
登録ホスト、仮想または物理には、インストールした製品およびアタッチしたサブスクリプションをベースにしたサブスクリプションのステータスがあります。
Satellite Web UI で仮想マシンのサブスクリプションのステータスを確認するには以下を実行します。
-
Satellite Web UI を開いて
ホスト
>コンテンツホスト
に移動します。 - ホストの名前をクリックします。
-
サブスクリプションステータス
のコラムの内容を確認します。各ホストのサブスクリプションステータスは、色 (緑、黄または赤) と文字で表示されます。
サブスクリプションステータスの意味
赤
- ホストには、有効なサブスクリプションがない製品がインストールされています。赤 のステータスにあるホストは、サブスクリプションの対象ではありません。このステータスのサブスクリプションを解決するには、手動の介入が必要です。
黄
- ホストに十分なサブスクリプションがないか、アタッチされているサブスクリプション数が正しくないか (例: 2 ソケットサブスクリプションが 4 ソケットホストにアタッチされている場合)、Satellite がどの仮想化マネージャーまたはハイパーバイザーが仮想マシンをホストしているか把握しておらず、一時的なサブスクリプションが割り当てられている場合。サブスクリプションが不十分な場合は、手動で解決する必要があります。一時的なサブスクリプションについては自動的に Satellite が十分な数が割り当てられるように利用可能なサブスクリプションを提供して解決します。
緑
- ホストは正しくサブスクライブされています。
ハイパーバイザーは、正しくサブスクライブされると、実際のステータスに拘らず 常に Satellite Web UI に表示されます。
1.5.1. 一時的なサブスクリプション
初めて仮想マシンが登録された時点では、Satellite は、仮想マシンがどの仮想化マネージャーまたはホストに関連付けられているか分からず、サブスクリプションの割り当てができません。このような場合には、最大 24 時間有効なサブスクリプションが一時的に付与されます。次に virt-who デーモンが実行され、仮想マシンのホストを特定すると、永続的なサブスクリプションが適用され、利用可能で適切なサブスクリプションを持つホストを提供します。永続的なサブスクリプションが付与されている場合は、仮想マシンのサブスクリプションのステータスが サブスクライブ済み
に変わります。一時的なサブスクリプションが付与されたホストは、24 時間経つと、自動的に物理ホスト向けのサブスクリプションを選択し、利用可能なサブスクリプション数を制限します。24 時間が経って、適切なサブスクリプションを要求できなかった場合には、ホストのステータスが サブスクライブなし
に変わります。
仮想マシンに一時的なサブスクリプションが付与されると、以下のようなオプションが利用できます。
virt-who をインストールして待機する
virt-who がすでにインストール、設定されていない場合には、インストール/設定して、virt-who が仮想マシンをホストする仮想化マネージャーまたはハイパーバイザーを特定するまで待機します。その場合には、利用可能なホストから、サブスクリプションが自動的に選択されます。
手動でサブスクリプションを割り当てる
最大 24 時間待機しない、または特定のサブスクリプションを割り当てる場合には、virt-who をインストール、設定してから、希望のサブスクリプションを割り当てます。
なにもしない
以前に記載のとおり、一時的なサブスクリプションを割り当てられた仮想マシンは、物理ホスト向けのサブスクリプションを割り当てられる場合があります。たとえば、CPU が 2 つある仮想マシンには、単一の VDC サブスクリプションではなく、サブスクリプションが 2 つ割り当てられますが、必要以上にサブスクリプションを消費する結果になるので、この状況は回避する必要があります。
第2章 インストールと設定の概要
仮想 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 デーモンとハイパーバイザーの間の接続を確立します。
第3章 設定オプション
virt-who を必要とする最も単純な構成には、ハイパーバイザーまたは仮想化マネージャー 1 つ、組織 1 つ、ハイパーバイザー技術 1 つ、Satellite Server に直接報告する virt-who インスタンスが含まれています。多くの組織がこれよりも複雑であるため、virt-who のインストール/設定は、以下の変数に対応するように適応させることができます。
- Satellite の複数組織
- 複数のハイパーバイザー
- 複数のハイパーバイザー技術
- HTTP プロキシー
3.1. 複数の組織
単一の virt-who インスタンスは、複数の組織に関連付けられている Satellite Server 仮想マシンにレポートすることができます。組織毎に個別の設定ファイルを使用することを推奨します。
3.2. 複数のハイパーバイザー
単一の virt-who インスタンスは複数のハイパーバイザーに接続して、それぞれがホストする仮想マシンをレポートすることができます。トラブルシューティングを簡素化するために、ハイパーバイザーまたは仮想化マネージャー毎に個別の設定ファイルを使用することを推奨します。たとえば、ハイパーバイザーが問題を起こしているとの疑いがある場合に、ハイパーバイザーの設定ファイルを別のディレクトリーに移動して、virt-from がそのファイルをクエリーしないようにすることで、問題の対象から取り除くことができます。
ハイパーバイザーが複数ある場合には、virt-who は並行してそれぞれをクエリーし、ハイパーバイザーが応答しないことが理由で virt-who のクエリーが停止したり、遅延したりする確率を減らします。
3.3. 複数のハイパーバイザー技術
単一の virt-who インスタンスは複数のサポート技術の仮想化プラットフォームに接続することができます。プラットフォーム毎に個別の設定ファイルを使用することを推奨します。
3.4. HTTP プロキシー
HTTP プロキシーがあると、追加の設定が必要になるというシナリオが複数存在します。お使いの設定がこれらの設定の 1 つまたは複数と一致する場合は、それぞれに必要な設定の変更を適用するようにしてください。
- virt-who とハイパーバイザー間に HTTP プロキシーがある場合には、virt-who はそれを考慮した設定にする必要があります。
- Satellite Server が HTTP プロキシー経由でカスタマーポータルに接続する場合は、virt-who はそのプロキシーを使用するように試行しますが、失敗する可能性が非常に高いです。詳しい情報および推奨の解決策は、「トラブルシューティング」を参照してください。
- Satellite Server がハイパーバイザーとして同じローカルネットワークにある場合には、HTTP プロキシーはローカルネットワークのトラフィックがこれを通過できるように設定する必要があります。詳しい情報は「トラブルシューティング」を参照してください。
第4章 前提条件
virt-who のインストールに進む前に、以下の前提条件を満たしていることを確認してください。
4.1. 認証要件
virt-who エージェントがゲスト仮想マシン一覧を取得できるように VMware vCenter および Red Hat Enterprise Virtualization Manager など仮想化マネージャーや、個別のハイパーバイザー上でアカウントを作成します。各接続は別ですので、必要に応じて接続ごとに異なるアカウントを使用してください。一般的に サービスアカウント として知られる各アカウントは、この目的のためだけに設定し、読み取り専用 アクセスと有効期限のないパスワードが指定されているようにしてください。
4.2. ソフトウェア要件
virt-who デーモンは、Red Hat Enterprise Linux バージョン 7 (推奨) または 6 上にインストールする必要があります。Red Hat Enterprise Linux ハイパーバイザーの場合は、virt-who デーモンをハイパーバイザー上にインストールする必要があります。その他の全ハイパーバイザーの場合は、virt-who デーモンを Satellite Server、Capsule Server または Red Hat Enterprise Linux の専用インスタンスにインストールしてください。Red Hat Enterprise Linux ハイパーバイザー以外の場合、ネットワーク設定が簡単で、可用性が最大化されるので、Red Hat は virt-who を Satellite Server にインストールすることを推奨します。virt-who を Red Hat Enterprise Linux の専用インスタンスにインストールする場合には、ホストを Satellite Server に登録する必要はありません。
4.3. サブスクリプション
サブスクリプションは、組織に固有です。virt-who デーモンが複数の組織をサポートするように設定できますが、組織間でサブスクリプションを共有することはできません。
組織およびハイパーバイザーごとに仮想データセンターのサブスクリプションを 1 つ指定する必要があります。
4.4. virt-who ホストの準備
virt-who が Satellite Server、外部の Capsule Server、Red Hat Enterprise Linux ハイパーバイザーにインストールされている場合には、この手順を飛ばしてください。
virt-who デーモンをインストールする前に、Red Hat Enterprise Linux インスタンスを以下のようにインストール、設定する必要があります。
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=admin --password=secret --org=organization_label --auto-attach
HTTPS 用のネットワークポートを開放します。
virt-who を有効にしてサブスクリプションサービスと通信するようにするには、TCP ポート 443 を開放する必要があります。
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
4.5. virt-who のインストール
virt-who パッケージは、最新バージョンが提供されるので、Red Hat Satellite Tools リポジトリーから取得する 必要があります。
6.2 の Satellite Tools リポジトリーにサブスクライブします。
Red Hat Enterprise Linux 7 の場合:
# subscription-manager repos --enable=rhel-7-server-satellite-tools-6.2-rpms
Red Hat Enterprise Linux 6 の場合:
# subscription-manager repos --enable=rhel-6-server-satellite-tools-6.2-rpms
サーバーが 6.2 用の Satellite Tools リポジトリーにサブスクライブしていることを確認します。
# subscription-manager repos --list-enabled
このコマンドの出力が 6.2 用の Satellite Tools リポジトリーを表示した場合には、サブスクリプションが正しく設定されています。
virt-who
パッケージをインストールします。# yum install virt-who
第5章 設定およびサービス
5.1. virt-who 設定ファイル
virt-who サービスは、最低でも以下の 2 つの設定ファイルが必要です。
-
ホストからの virt-who 接続すべてに適用する設定が含まれるグローバル設定ファイル (
/etc/sysconfig/virt-who
) -
Satellite を接続する各ハイパーバイザーまたは仮想化マネージャーの個別設定ファイル。これらは、
/etc/virt-who.d/
ディレクトリーに保存する必要があります。
仮想化マネージャーまたはハイパーバイザーを追加または削除する場合には、virt-who デーモンの設定を更新する必要があります。
以下は、virt-who で提供される個別の設定ファイル例からの抜粋です。各接続の設定オプションは、stanza に含まれます。各設定 stanza のタイトルは一意ですが、一意でない場合には、virt-who は名前に要件を課しません。個別の設定ファイルはハイパーバイザーと同じ名前を指定することを推奨しますが必須ではありません。
#[config name] #type= ; insert one of libvirt/esx/hyperv/rhevm/vdsm/fake #server= ; insert hostname or ip address of the server to connect to #username= ; username for server authentication #password= ; password for server authentication #encrypted_password= ; password encrypted using virt-who-password utility #owner= ; owner for use with SAM, Customer Portal, or Satellite 6 #env= ; environment for use with SAM, Customer Portal, or Satellite 6 #hypervisor_id= ; how will be the hypervisor identified, one of: uuid, hostname, hwuuid
グローバルの設定とハイパーバイザーの接続の設定ファイルを 1 つのファイル (/etc/sysconfig/virt-who
) に統合することができ、サポートされています。ただし、この手法は今後廃止予定です。グローバルと個別の設定ファイルを分離することでトラブルシューティングが簡素化されます。
5.1.1. virt-who アクセスの範囲の制限
Red Hat Enterprise Linux や他のオペレーティングシステムを実行する仮想マシンが含まれるハイブリッドの環境を稼働している場合には、virt-who のホストへのアクセス範囲を制限することができます。たとえば、ハイパーバイザーホストが Microsoft Windows Server インスタンスのみをホストする場合は、virt-who エージェントからレポートを受けるハイパーバイザーがあっても利点はありません。
virt-who のホスト (ハイパーバイザー) へのアクセスを制限するには、以下の方法のいずれかまたは両方を使用してください。どちらの方法も目的は同じですが、包含/除外の方法は virt-who のネイティブの機能であるため、デフォルトとみなされます。
- 包含または除外するホストを表示します。
- ホストのサブセットのみにアクセスを制限します。
5.1.1.1. 包含または除外するホストの表示
virt-who デーモンからレポートを受けるホストを包含または除外するには、virt-who 設定ファイルに、コンマ区切りで追加します。ホストの名前に特殊文字が含まれる場合には、引用符で囲むようにしてください。ホストを 包含する には filter_hosts
パラメーターを使用します。ホストを 除外 するには、exclude_hosts
パラメーターを使用します。virt-who の各設定ファイルでは、これらの方法の 1 つ を使用できます。
包含または除外するホストを特定する方法は、Satellite Web UI で指定した特定方法と一致する必要があります。hypervisor_id=hostname
を指定した場合は、ホスト名を一覧に記載する必要があります。hypervisor_id=uuid
または hypervisor_id=hwuuid
を指定した場合には、順にホストの UUID または HWUUID を記載する必要があります。
フィルタリングパラメーター filter_host_uuids
と exclude_host_uuids
は非推奨になりました。
virt-who からのホストの除外例
[vcenterhost1] type=esx server=vsphere.example.com username=test password=test owner=Default_Organization env=Library hypervisor_id=hostname exclude_hosts=host1.redhat.com,host2.redhat.com
5.1.1.2. 特定のホストへのアクセス制限
virt-who が使用するアカウントに、包含するホストのみに対する読み取り専用アクセスを設定します。ホストへのアクセス制限をすることで、virt-who デーモンはアクセス可能なホストのみを検索、取得します。
5.1.2. 設定ソース
本ガイドではすべてのサンプルで設定ファイルを使用しますが、virt-who は複数のソースからの設定を受け入れることができます。以下に、設定ソースが優先順に記載されています。virt-who 設定オプションに関する詳細情報は、virt-who-config
および virt-who
の man ページを参照してください。
設定ファイルに実装する前に設定をテストする場合に、コマンドラインで設定オプションを指定すると便利です。virt-who サービスまたは Red Hat Enterprise Linux ホストが再起動されると、これらのオプションは永続されない点に注意してください。
- コマンドライン
- 環境変数
-
/etc/sysconfig/virt-who
ファイル -
/etc/virt-who.d/*
ファイル -
/etc/virt-who.conf
ファイル
5.2. virt-who のユーザー作成
Administrator
アクセスのある Satellite ユーザーを作成します。このアカウントを使用すると、virt-who が Satellite に接続できるようになります。Red Hat は、この目的 のみ にこのアカウントを使用することを推奨します。以前にこの目的のために Satellite ユーザーを作成した場合には、この手順を省略してください。
Satellite Web UI を使用するユーザーを作成する方法は、『Red Hat Satellite 6 管理ガイド』の「ユーザーの作成」を参照してください。Hammer CLI を使用したユーザーの作成方法は、『Red Hat Satellite 6 Hammer CLI Guide』の「Managing User Permissions」を参照してください。
ユーザーパスワードの暗号化
virt-who アカウントパスワードを暗号化すると、プレーンテキストでパスワードを保存するよりも、セキュリティーが強化されます。
root
アカウントは、暗号化キーはroot
アカウントでのみ読み取りができるファイルに記述するので、パスワードを暗号化する必要があります。そのような理由から、root
アカウントのみがパスワードの復号化が可能です。virt-who-password
ユーティリティーを実行します。# virt-who-password
アカウントのパスワードを入力してハイパーバイザーに接続します。暗号化形式のパスワードが画面に出力されます。
# virt-who-password Password: <virt who account's password> Use following as value for encrypted_password key in the configuration file: 837a5d6a34203e805c998ce02bf84c03
- 暗号化パスワードされたパスワードをメモします。
これは、virt-who デーモンの設定で後に使用します。
5.3. virt-who が Red Hat Enterprise Virtualization Hypervisor に接続するように設定する手順
virt-who のこのインスタンスが接続する Red Hat Enterprise Virtualization Hypervisor (RHEV-H) ホストごとにこの手順を繰り返します。
Red Hat Enterprise Virtualization Manager インスタンスに接続する際に使用するアカウントのパスワードを暗号化します。
virt-who-password
コマンドを使用してパスワードを暗号化します。サンプルについては「virt-who のユーザー作成」を参照してください。テンプレート設定ファイルを新しいファイルにコピーします。
virt-who ホスト上で以下を実行します。
# cp /etc/virt-who.d/template.conf /etc/virt-who.d/rhevmhost1
各ハイパーバイザーの設定ファイルを簡単に特定するには、RHEV-H ホスト名を新規ファイル名として使用します。この例のホスト名は、
rhevmhost1
です。作成済みの設定ファイルを編集して、お使いの設定固有の値に、サンプルの値を変更してください。
[rhevmhost1] 1 type=rhevm 2 hypervisor_id=hostname 3 owner=org_label 4 env=Library 5 server=https://rhevmhost1.example.com:443 6 username=admin@internal 7 encrypted_password=bd257f93d@482B76e6390cc54aec1a4d 8
- 1
- これは、各 virt-who インスタンスごとに一意です。ハイパーバイザーごとの設定ファイルを特定しやすいように、Red Hat Enterprise Virtualization Manager ホストの名前を使用します。
- 2
type=rhevm
は、virt-who の Red Hat Virtualization Manager への接続を指定します。- 3
- Satellite Web UI で、ハイパーバイザーがホスト名で特定されることを指定します。デフォルトは、ハイパーバイザーの UUID を使用しますが、UUID は (名前に比べ) 分かりやすさに欠けます。
- 4
- 組織のラベル。利用可能な組織を表示するには、
hammer organization list
のコマンドを実行します。仮想ホストに割り当てる組織がどれかを特定して、LABEL
コラムの該当のエントリーを使用します。 - 5
- これにより、ホストが配置される環境を指定します。これは、
Library
で なければなりません。 - 6
- Red Hat Enterprise Virtualization Manager の完全修飾ドメイン名または IP アドレス。デフォルトのポート番号は 8443 ですが、バージョン 3.0 以降では、Red Hat Enterprise Virtualization Manager はポート 443 を使用します。
- 7
- virt-who が Red Hat Enterprise Virtualization Manager インスタンスに接続するアカウント名。
username
オプションでは、username@domain
の形式で入力する必要があります。 - 8
username
で指定したアカウントのパスワードを暗号化します。
virt-who が Satellite Server にレポートするように設定します。
以下の行を追加します。サンプルの値は、お使いの環境に固有の値に置き換えてください。
rhsm_hostname=satellite.example.com 1 rhsm_username=virt_who-admin 2 rhsm_encrypted_password=bd257f93d@482B76e6390cc54aec1a4d 3 rhsm_prefix=/rhsm 4
- 1
satellite.example.com
などの Satellite Server の完全修飾ホスト名- 2
- Satellite Server に接続する際に virt-who デーモンが使用する Satellite ユーザー。これは、「virt-who のユーザー作成」で作成しました。
- 3
rhsm_username
で指定したユーザーの暗号化パスワード。これは、「virt-who のユーザー作成」で作成しました。- 4
- これは、
/rhsm
でなければなりません。
5.4. virt-who が Red Hat Enterprise Linux ハイパーバイザーに接続するように設定する手順
Red Hat Enterprise Linux ハイパーバイザーごとにこの手順を完了してください。
virt-who が Red Hat Enterprise Linux ハイパーバイザーに接続するように設定する手順
Red Hat Enterprise Linux ハイパーバイザーが Satellite Server に登録されるように設定します。
# yum install http://satellite.example.com/pub/katello-ca-consumer-latest.noarch.rpm
Red Hat Enterprise Linux を Satellite Server に登録します。
# subscription-manager register --org="organizational_label"
VDC サブスクリプションを Red Hat Enterprise Linux ハイパーバイザーにアタッチします。
# subscription-manager attach --pool=subscription_pool_ID
必要なサブスクリプションプール ID を検索するには、利用可能なサブスクリプションをすべて表示します。
# subscription-manager list --available
テンプレート設定ファイルを新しいファイルにコピーします。
各ハイパーバイザーの設定ファイルを簡単に特定するには、ハイパーバイザーのホスト名を新規ファイル名として使用します。この例のホスト名は、
rhelhost1
です。cp /etc/virt-who.d/template.conf /etc/virt-who.d/rhelhost1
作成済みの設定ファイルを編集して、お使いの設定固有の値に、サンプルの値を変更してください。
[rhelhost1.example.com] 1 type=vdsm 2 hypervisor_id=hostname 3
これで、Red Hat Enterprise Linux ハイパーバイザーインスタンスに必要な設定が完了しました。
ゲスト仮想マシンの登録
Red Hat Enterprise Linux ハイパーバイザーでホストされるゲスト仮想マシンを登録する場合には、ハイパーバイザーにアタッチされているサブスクリプションを使用することが重要です。
仮想マシンが Satellite Server に登録されるように設定します。
# yum install http://satellite.example.com/pub/katello-ca-consumer-latest.noarch.rpm
仮想マシンを登録します。
# subscription-manager register --org="organization_label"
サブスクリプションを取得します。
# subscription-manager attach --pool=subscription_pool_ID
サブスクリプションプールがハイパーバイザーに使用したものと同じことを確認します。仮想マシンは、Satellite Server からサブスクリプションを取得します。このプロセスの詳細は、「仮想マシンのサブスクリプションプロセス」を参照してください。
5.5. virt-who が VMware vCenter に接続するように設定する手順
virt-who のこのインスタンスが接続する VMware vCenter ホストごとにこの手順を繰り返します。
Red Hat Enterprise Virtualization Manager インスタンスに接続する際に使用するアカウントのパスワードを暗号化します。
virt-who-password
コマンドを使用してパスワードを暗号化します。サンプルについては「virt-who のユーザー作成」を参照してください。テンプレート設定ファイルを新しいファイルにコピーします。
各ハイパーバイザーの設定ファイルを簡単に特定するには、VMware vCenter のホスト名を新規ファイル名として使用します。この例のホスト名は、
vcenterhost1
です。# cp /etc/virt-who.d/template.conf /etc/virt-who.d/vcenterhost1
作成済みの設定ファイルを編集して、お使いの設定固有の値に、サンプルの値を変更してください。
[vcenterhost1] 1 type=esx 2 hypervisor_id=hostname 3 owner=org_label 4 env=Library 5 server=vcenterhost1.example.com 6 username=corporate\svc-virt-who 7 encrypted_password=bd257f93d@482B76e6390cc54aec1a4d 8
- 1
- これは、各 virt-who インスタンスごとに一意です。VMware vCenter ごとの設定ファイルを特定しやすいように、Red Hat Enterprise Virtualization Manager ホストの名前を使用します。
- 2
type=esx
パラメーターは、この virt-who が VMware vCenter に接続するように指定します。- 3
- Satellite Web UI で、ハイパーバイザーがホスト名で特定されることを指定します。デフォルトは、ハイパーバイザーの UUID を使用しますが、UUID は (名前に比べ) 分かりやすさに欠けます。
- 4
- 組織のラベル。利用可能な組織を表示するには、
hammer organization list
のコマンドを実行します。仮想ホストに割り当てる組織がどれかを特定して、LABEL
コラムの該当のエントリーを使用します。 - 5
- これにより、ホストが配置される環境を指定します。これは、
Library
で なければなりません。 - 6
- VMware vCenter サーバーの完全修飾ホスト名または IP アドレス
- 7
- virt-who がハイパーバイザーに接続するアカウント名 (
domain_name\account_name
形式)。バックスラッシュ 1 つを指定してdomain_name
とaccount_name
を分割しています。ドメインアカウントとグローバルの設定ファイル/etc/sysconfig/virt-who
を使用する場合は、バックスラッシュは 2 つ 必要です。詳細は、Red Hat ナレッジソリューションの「virt-who で Windows ドメインアカウントを使用する」を参照してください。 - 8
username
で指定したアカウントのパスワードを暗号化します (leveloffset: +1)。
virt-who が Satellite Server にレポートするように設定します。
以下の行を追加します。サンプルの値は、お使いの環境に固有の値に置き換えてください。
rhsm_hostname=satellite.example.com 1 rhsm_username=virt_who-admin 2 rhsm_encrypted_password=bd257f93d@482B76e6390cc54aec1a4d 3 rhsm_prefix=/rhsm 4
- 1
satellite.example.com
などの Satellite Server の完全修飾ホスト名- 2
- Satellite Server に接続する際に virt-who デーモンが使用する Satellite ユーザー。これは、「virt-who のユーザー作成」で作成しました。
- 3
rhsm_username
で指定したユーザーの暗号化パスワード。これは、「virt-who のユーザー作成」で作成しました。- 4
- これは、
/rhsm
でなければなりません。
5.6. virt-who が Microsoft Hyper-V に接続するように設定する手順
virt-who デーモンは現在、Microsoft System Center 2012 R2 Virtual Machine Manager (SCVMM) のサポートはしていません。virt-who の接続先の Microsoft Hyper-V ホスト毎に virt-who の設定ファイルが必要です。
virt-who のこのインスタンスが接続する Microsoft Hyper-V ホストごとにこの手順を繰り返します。
Windows Remote Management を有効にして、HTTP または HTTPS リスナーが実行中である必要があります。
Microsoft Hyper-V サーバーで以下を実行します。
# winrm quickconfig
Microsoft Hyper-V サーバーでリモート管理を有効にします
Microsoft Hyper-V サーバーで以下を実行します。
# netsh advfirewall firewall set rule group="Remote Administration" new enable=yes
HTTP を使用する場合は、暗号化のない接続を有効にします。
Microsoft Hyper-V サーバーで以下を実行します。
# winrm set winrm/config/service @{AllowUnencrypted="true"}
Microsoft Hyper-V サーバーで設定された認証方法が Basic か NTLM を確認します。
Microsoft Hyper-V サーバーで以下を実行します。
# winrm get winrm/config/service/auth
組織の情報を取得します。
Satellite Server で以下を実行します。
# hammer organization list
これにより、以下のような出力が表示されます。
--|-----------|-----------|------------ ID| NAME | LABEL | DESCRIPTION --|-----------|-----------|------------ 1 | RedHat | RedHat | --|-----------|-----------|------------
- ID: 組織の識別子
- NAME: Satellite 組織の名前
- LABEL: Satellite 組織のラベル
DESCRIPTION: Satellite 組織の説明 (オプション)
仮想マシンを割り当てる組織を特定して、LABEL コラムの該当のエントリーをメモします。これは、virt-who お設定で後ほど使用します。
Microsoft Hyper-V サーバーに接続する際に使用するアカウントのパスワードを暗号化します。
virt-who-password
コマンドを使用してパスワードを暗号化します。サンプルについては「virt-who のユーザー作成」を参照してください。テンプレート設定ファイルを新しいファイルにコピーします。
各ハイパーバイザーの設定ファイルを簡単に特定するには、Microsoft Hyper-V サーバーのホスト名を新規ファイル名として使用します。この例のホスト名は、
hypervhost1
です。作成済みの設定ファイルを編集して、お使いの設定固有の値に、サンプルの値を変更してください。
[hypervhost1] 1 type=hyperv 2 hypervisor_id=hostname 3 owner=org_label 4 env=Library 5 server=hypervhost1.example.com 6 username=administrator 7 encrypted_password=bd257f93d@482B76e6390cc54aec1a4d 8
- 1
- これは、各 virt-who インスタンスごとに一意です。ハイパーバイザーごとの設定ファイルを特定しやすいように、Microsoft Hyper-V ホストの名前を使用します。
- 2
type=hyperv
は、virt-who の Microsoft Hyper-V ホストへの接続を指定します。- 3
- Satellite Web UI で、ハイパーバイザーがホスト名で特定されることを指定します。デフォルトは、ハイパーバイザーの UUID を使用しますが、UUID は (名前に比べ) 分かりやすさに欠けます。
- 4
- 組織のラベル
- 5
- これにより、ホストが配置される環境を指定します。これは、
Library
で なければなりません。 - 6
- Microsoft Hyper-V サーバーの完全修飾ホスト名または IP アドレス
- 7
- virt-who がハイパーバイザーに接続するアカウント名。デフォルトでは、これは
Administrator
です。別のアカウントを使用するには、ユーザーアカウントを作成して、そのアカウントを Hyper-V Administrators と Remote Management Users のグループ (Windows 2012 Server) に割り当てます。 - 8
username
で指定したアカウントのパスワードを暗号化します。
virt-who が Satellite Server にレポートするように設定します。
以下の行を追加します。サンプルの値は、お使いの環境に固有の値に置き換えてください。
rhsm_hostname=satellite.example.com 1 rhsm_username=virt_who-admin 2 rhsm_encrypted_password=bd257f93d@482B76e6390cc54aec1a4d 3 rhsm_prefix=/rhsm 4
- 1
satellite.example.com
などの Satellite Server の完全修飾ホスト名- 2
- Satellite Server に接続する際に virt-who デーモンが使用する Satellite ユーザー。これは、「virt-who のユーザー作成」で作成しました。
- 3
rhsm_username
で指定したユーザーの暗号化パスワード。これは、「virt-who のユーザー作成」で作成しました。- 4
- これは、
/rhsm
でなければなりません。
5.7. virt-who サービスの設定および起動
Satellite 向けの virt-who サービスを設定します。
グローバルの
/etc/sysconfig/virt-who
設定ファイルを編集して、以下のようにパラメーターを設定します。これにより、virt-who が Satellite ホストと通信することを指定します。VIRTWHO_SATELLITE6=1
警告デフォルトでは、virt-who は 1 時間ごとに開始されます。間隔は、
VIRTWHO_INTERVAL
のグローバル設定パラメーターで定義され、秒単位で測定されます。この値は、Red Hat サポートのアドバイスがない限り、変更しないようにしてください。virt-who とゲスト仮想マシンの間の HTTP プロキシーを許可します。
virt-who が実行中のサーバーとハイパーバイザーまたは仮想化マネージャーの間に HTTP プロキシーがある場合には、グローバルの
/etc/sysconfig/virt-who
設定ファイルを編集して、以下のようにパラメーターを設定します。http_proxy=http://proxy-ip-or-hostname:port-number
virt-who 設定を確認します。
virt-who --one-shot
コマンドを実行して、全設定ファイルを読み込み、全ソースから仮想マシン一覧を取得してからすぐに終了します。こうすることで、設定ファイル、認証情報、設定された仮想化プラットフォームへの接続性をテストします。# virt-who --one-shot
ハイパーバイザーとホストされたゲスト仮想マシンの一覧が JSON 形式で出力されるはずです。以下は、VMware vSphere インスタンスからの virt-who の出力の抜粋です。ハイパーバイザーからの出力はすべて、以下のような構成になっています。
{ "guestId": "422f24ed-71f1-8ddf-de53-86da7900df12", "state": 5, "attributes": { "active": 0, "virtWhoType": "esx", "hypervisorType": "vmware" } },
virt-who サービスを起動して有効化します。
Red Hat Enterprise Linux 7 の場合:
# systemctl start virt-who.service # systemctl enable virt-who.service
Red Hat Enterprise Linux 6 の場合:
# service virt-who start # chkconfig virt-who on
virt-who サービスが正常に開始されたことを確認します。
Red Hat Enterprise Linux 7 の場合:
# systemctl status virt-who.service
このコマンドからの出力は、以下のようになります。
virt-who.service; enabled
の出力は、このサービスが有効であることを、Active: active (running)
はこのサービスが起動されていることを確認できます。● 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 Fri 2016-03-11 14:59:05 AEST; 47s ago
Red Hat Enterprise Linux 6 の場合:
# service virt-who status
このコマンドからの出力は、以下のようになります。
virt-who (pid 7474) is running...
このハイパーバイザーが Satellite Web UI に表示されていることを確認します。
Satellite Web UI で、ホスト → すべてのホスト に移動して、ホスト (ハイパーバイザー) システムが表示されることを確認してください。
注記Red Hat Satellite 6.2 では、ハイパーバイザーの命名規則が以下のように変更されました。
virt-who-host_name-organization_ID
ハイパーバイザーの特定を簡素化するために、プリフィックス virt-who- が追加されました。また、ハイパーバイザーは複数の組織に登録可能であるため、ハイパーバイザーの名前が一意になるように organization_ID が追加されました。
ハイパーバイザーにサブスクリプションを割り当てます。
Virtual Datacenter サブスクリプションを仮想マシンで利用できるようにするには、ホストシステムにサブスクリプションが必要です。仮想マシンがどのホストで実行されているかを確認するには、以下を実行してください。
-
ホスト
ページから仮想マシンプロファイルを開きます。詳細
タブでは、仮想マシンが仮想ホストhostname
として表示されます。 -
hostname
リンクをクリックすると、ホストシステムのプロファイルが表示されます。 -
サブスクリプション
タブで、ホストシステムにサブスクリプションを割り当てます。Red Hat Enterprise Linux ゲストを実行するハイパーバイザーが複数ある場合には、サブスクリプションをすべてのハイパーバイザーに割り当ててください。
-
5.7.1. virt-who サービスの再起動
virt-who 設定ファイルの 1 つまたは複数が変更された場合、または Satellite の設定環境が変更された場合には、virt-who サービスを再起動して変更を適用してください。たとえば、virt-who は、virt-who アカウントのパスワードの変更後、ハイパーバイザーの新規組織への移動後に再起動する必要があります。
Red Hat Enterprise Linux 7 の場合:
# systemctl restart virt-who.service
Red Hat Enterprise Linux 6 の場合:
# service virt-who restart
第6章 トラブルシューティング
6.1. デバッグ向けのロギング
デフォルトでは、virt-who はすべてのアクティビティーを /var/log/rhsm/rhsm.log
ファイルにロギングします。トラブルシューティングする際は、役立つ情報が含まれている可能性がありますので、ログファイルを確認するようにしてください。詳細のロギングを有効にするには、グローバル設定ファイル /etc/sysconfig/virt-who
のデバッグの行を VIRTWHO_DEBUG=1
に変更してください。virt-who がサービスとして実行されている場合は、設定を適用するために再起動する必要があります。 潜在する問題を解決したら、デバッグの行を VIRTWHO_DEBUG=0
に変更し、virt-service を再起動して、診断ロギングを無効にしてください。
6.2. 設定の行が重複する場合
グローバルおよびハイパーバイザー固有のファイルなど設定ファイルが複数ある可能性がある場合には、設定業が重複すると、virt-who が意図したものと違う動作をする可能性があります。
virt-who 設定ファイルの重複行を検出するには、以下のコマンドを使用します。このコマンドの出力は、指定のファイルの全行を一覧にし、行頭に重複回数を付けて表示します。2 回以上同じ行が記載されているインスタンスをすべて確認して重複行を削除し、virt-who サービスを再起動してください。説明は、「virt-who サービスの再起動」を参照してください。
cat /etc/sysconfig/virt-who /etc/virt-who.d/* | sort | uniq -c
6.3. 認証情報
認証情報が間違っていると、virt-who の問題発生の原因となる可能性があります。できる限り、仮想化ハイパーバイザーにログインして、virt-who が使用するように設定された認証情報をテストするようにしてください。たとえば、VMware vSphere の管理コンソールにログインして、必要なホストが表示され、認証情報が正しいことを確認してください。
6.4. 設定オプションのテスト
トラブルシューティング時には、問題の根本原因を判断する一般的な方法は、必要に応じて繰り返し、変更を加えて、結果をテストしていきます。virt-who エージェントは、この手法を使用しやすいようなオプションを提供します。
virt-who --one-shot
コマンドを実行して、全設定ファイルを読み込み、全ソースから仮想マシン一覧を取得してからすぐに終了します。こうすることで、設定ファイル、認証情報、設定された仮想化プラットフォームへの接続性をテストします。
# virt-who --one-shot
ハイパーバイザーとホストされたゲスト仮想マシンの一覧が JSON 形式で出力されるはずです。以下は、VMware vSphere インスタンスからの virt-who の出力の抜粋です。ハイパーバイザーからの出力はすべて、以下のような構成になっています。
{ "guestId": "422f24ed-71f1-8ddf-de53-86da7900df12", "state": 5, "attributes": { "active": 0, "virtWhoType": "esx", "hypervisorType": "vmware" } },
6.5. シナリオ例
6.5.1. Virt-who が仮想化プラットフォームとの接続に失敗した場合
virt-who が仮想化プラットフォームとの接続に失敗した場合には、Red Hat サブスクリプションマネージャーのログファイル (/var/log/rhsm/rhsm.log
) を確認してください。No route to host
とのメッセージが表示された場合は、考えられる理由の 1 つとして、ハイパーバイザーが予想どおりのポートをリッスンしていないことが挙げられます。たとえば、Red Hat Virtualization Manager には、後方互換用にポート 8443 をデフォルト設定していますが、virt-who のデフォルトは 443 のポートを使用します。このような場合は、/etc/virt-who.d/
のハイパーバイザーの設定を編集して、server=https://rhevmhost1.example.com:443
になるように、server
の行の値に :443
と追記してください。
6.5.2. ハイパーバイザーが Satellite web UI にホスト名ではなく UUID で表示されている場合
デフォルトでは、ハイパーバイザーは Satellite Web UI で UUID で特定します。ホスト名で特定できるように、これを変更することができますが、ハイパーバイザーが重複してしまいますので、設定は Satellite を起動する前に行う必要があります。変更の必要がある場合には、Red Hat サポートでサポートチケットを起票してください。
6.5.3. Virt-who がローカルネットワークで HTTP プロキシーを介して仮想化マネージャーに接続しようとする場合
Satellite が HTTP プロキシー経由で Red Hat カスタマーポータルに接続されており、Satellite Server と仮想化マネージャーが同じネットワークセグメントにある場合に、virt-who はプロキシー経由で仮想マシン一覧を取得使用とします。推奨の回避策として、ローカルのトラフィックが通過できるようにプロキシーを設定してください。このような設定ができない場合には、他の回避策として、Satellite Server に Squid プロキシーサーバーをインストールしてください。詳しい情報は、「Bypassing proxy for some repository URLs on Satellite 6」を参照してください。