Red Hat Training

A Red Hat training course is available for Red Hat Satellite

第7章 仮想化エージェント (virt-who)

virt-who は、仮想 ゲスト ID を Satellite にレポートするためのエージェントです。virt-who にはサードパーティーのハイパーバイザーをスキャンし、そのハイパーバイザーを Satellite に登録し、ハイパーバイザーに関連付けられたゲスト UUID 一覧をアップロードする機能があります。

7.1. 仮想化エージェントの設定

仮想化エージェントは、Satellite サーバーまたは別のホストにインストールすることができます。別のホストを使用する場合は、virt-who のインストールのために以下の要件を満たす必要があります。
  • Red Hat Enterprise Linux 6 またはそれ以降。
  • TCP ポート 443 で Red Hat Satellite とハイパーバイザーの両方にアクセスできること。さらに使用中の仮想環境でユーザーを作成し、仮想化エージェントがハイパーバイザーとゲストについての情報を読み取れるようにします。これを読み取り専用パーミッションのあるユーザーにすることができます。
  • システムが Red Hat サブスクリプションマネージャーまたは Red Hat Satellite に登録され、かつ Satellite Tools チャンネルにサブスクライブされている必要があります。
Red Hat Satellite で virt-who を設定するには、以下の手順を実行します。
  1. Red Hat Satellite に root としてログインします。
  2. virt-who パッケージをインストールします。
    # yum install virt-who
    
  3. /etc/sysconfig/virt-who ファイルで以下のエントリーを編集します。
    # Start virt-who on background, perform doublefork and monitor for virtual guest
    # events (if possible). It is NOT recommended to turn off this option for
    # starting virt-who as service.
    VIRTWHO_BACKGROUND=1
    
    # Enable debugging output.
    # optional
    VIRTWHO_DEBUG=1
    
    # virt-who subscription manager backend, enable ony one option from following 2:
    # Report to Subscription Asset Manager (SAM)
    VIRTWHO_SAM=0
    # Report to Satellite
    VIRTWHO_SATELLITE=1
    
    使用中の仮想環境用に仮想化オプションを編集します。たとえば、Red Hat Enterprise Virtualization の場合は以下のようになります。
    # Register guests using RHEV-M
    VIRTWHO_RHEVM=1
    
    # Options for RHEV-M mode
    VIRTWHO_RHEVM_ENV=not-used
    VIRTWHO_RHEVM_SERVER=server_hostname_or_IP
    VIRTWHO_RHEVM_USERNAME=server_login
    VIRTWHO_RHEVM_PASSWORD=server_password
    
    VMware ESX の場合は以下のようになります。
    # Register ESX machines using vCenter
    VIRTWHO_ESX=1
    
    # Option for ESX mode
    VIRTWHO_ESX_ENV=not-used
    VIRTWHO_ESX_OWNER=organization_id
    VIRTWHO_ESX_SERVER=server_hostname_or_IP
    VIRTWHO_ESX_USERNAME=server_login
    VIRTWHO_ESX_PASSWORD=server_password
    

    注記

    ユーザーが仮想環境にアクセスするには、読み取り専用パーミッションのみが必要になります。セキュリティー上の理由から、読み取り専用パーミッションのみの新規ユーザーを仮想環境で作成してください。
    最後に Satellite オプションを編集し、お使いのサーバーの詳細を入力します。
    # Option for Satellite backend
    VIRTWHO_SATELLITE_SERVER=satellite_hostname
    VIRTWHO_SATELLITE_USERNAME=username
    VIRTWHO_SATELLITE_PASSWORD=password
    
  4. virt-who サービスを起動します。
    service virt-who start
    
    仮想エージェントを起動するとホスト/ゲストの UUID 情報が収集され、Satellite に送信されます。また、/var/lib/virt-who/hypervisor-systemid-[UUID] ファイルをスキャンして、ハイパーバイザーが Red Hat Satellite に登録されているかどうかを確認します。登録されている場合は、Red Hat Satellite 上の既存のハイパーバイザーシステム情報が更新されます。Satellite 上に存在しない場合は、新規のハイパーバイザーが登録されます。

注記

ハイパーバイザーが削除されると、対応するファイルを /var/lib/virt-who/hypervisor-systemid-UUID から削除し、ハイパーバイザーを Satellite の web UI から手動で削除する必要があります。
ご使用の環境に同じタイプの仮想環境が複数含まれている場合は、/etc/sysconfig/virt-who に単一の設定の詳細を追加するのではなく、複数の設定ファイルを /etc/virt-who.d/ に追加します。以下に例を示します。
[test-esx-1]
type=esx
server=10.1.1.1
username=admin
password=password

[test-esx-2]
type=esx
server=10.1.2.1
username=admin
password=password

7.1.1. VMware の設定シナリオ

以下のシナリオでは、VMware 環境で使用する virt-who を設定します。これには、virt-who で使用する読み取り専用パーミッションのユーザーを Active Directory で作成することも含まれます。
Satellite では、ポート 80 と 443 で vCenter へのオープンアクセスを必要とします。以下の手順を実行する前に、Red Hat Satellite サーバーから vCenter へのポート 80 と 443 での接続を許可する例外をファイアウォールで作成します。
まず Active Directory で virtwho-readonly-user アカウントを作成し、vCenter へのアクセスを提供します。
  1. ユーザーをドメインに追加する権限を持つユーザーとして、Windows マシン上で Active Directory Users and Computers プログラムを実行します。virtwho-readonly-user という名前のユーザーを作成します。
  2. 管理者権限のあるアカウントで vSphere Web Client にログインします。
  3. HomeAdministrationSingle Sign-OnConfiguration に移動します。
    Single Sign-On Configuration への移動

    図7.1 Single Sign-On Configuration への移動

  4. Identity Sources タブに移動し、プラス記号 をクリックし、Active Directory の identity source を選択します。これで virtwho-readonly-user ユーザーを含めた Active Directory identity source が追加されます。
    Identity Source の追加

    図7.2 Identity Source の追加

  5. HomevCenter に移動して vCenter を選択し、virtwho-readonly-user にアクセスを付与します。
    vCenter への移動

    図7.3 vCenter への移動

  6. ManagePermissions に移動して プラス記号 をクリックし、Add Permission ダイアログを開きます。
    プラス記号をクリック

    図7.4 プラス記号をクリック

  7. virtwho-readonly-user を選択します。
  8. Read-only ロールを選択します。
  9. OK をクリックしてパーミッションを保存します。
  10. ログアウトして、virtwho-readonly-user を vCenter でテストします。virtwho-readonly-user がアクセス可能なリソースがインベントリーに表示されることを確認してください。
次に virt-who をインストールして、vCenter と通信するように設定します。
  1. Satellite サーバーにログインし、virt-who をインストールします。
    # yum install virt-who
    
  2. /etc/sysconfig/virt-who ファイルを編集し、以下のオプションを使用します。
    # virt-who options
    VIRTWHO_BACKGROUND=1
    VIRTWHO_DEBUG=1
    
    # Enable virt-who with VMware
    VIRTWHO_ESX=1
    
    # Options for ESX mode
    VIRTWHO_ESX_ENV=not-used
    VIRTWHO_ESX_OWNER=[organization_id]
    VIRTWHO_ESX_SERVER=vcenter.example.com
    VIRTWHO_ESX_USERNAME=DOMAIN\\virtwho-readonly-user
    VIRTWHO_ESX_PASSWORD=*******
    
    # Report to Satellite
    VIRTWHO_SAM=0
    VIRTWHO_SATELLITE=1
    
    [organization_id] を Satellite サーバー上のターゲット組織の ID に置き換えます。
  3. virt-who サービスを起動して、有効にします。
    # service virt-who start
    # chkconfig virt-who on
    
virt-who がホストとゲストの UUID を vCenter から収集して、Satellite で使用できるようにします。