第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