6.5. virt-who の設定


重要

virt-who を設定するための環境変数の使用および sysconfig ファイルの使用は非推奨です。次のメジャーリリースでは、これらの使用は無視されます。

サポートされる virt-who 設定は、仮想化プラットフォームごとに異なります。

  • Red Hat 製品用に virt-who を設定するには、Red Hat ハイパーバイザーでの virt-who のインストールおよび設定 を参照してください。
  • VMware vCenter 用に virt-who を設定するには、virt-who で VMware vCenter に接続する設定 を参照してください。
  • Microsoft Hyper-V 用に virt-who を設定するには、Microsoft Hyper-V に接続するための virt-who の設定 を参照してください。
  • OpenShift Virtualization 用に virt-who を設定するには、OpenShift Virtualization に接続するための virt-who の設定 を参照してください。

6.5.1. Red Hat ハイパーバイザーでの virt-who のインストールおよび設定

以下の手順に従って、Red Hat Enterprise Linux Virtualization (KVM)、Red Hat Virtualization、Red Hat OpenStack Platform の各ハイパーバイザーに virt-who をインストールおよび設定します。

前提条件

  • ハイパーバイザーを Red Hat Subscription Management に登録する。
  • Red Hat Virtualization Host (RHVH) を使用している場合は、virt-who の最小バージョンが利用可能になるように、これを最新バージョンに更新する。virt-who は RHVH でデフォルトで利用できますが、rhel-7-server-rhvh-4-rpms リポジトリーから個別に更新することはできません。

手順

  1. ハイパーバイザーに virt-who をインストールします。

    # yum install virt-who
  2. 必要に応じて、/etc/virt-who.conf ファイルを編集してグローバル設定を変更または追加します。virt-who はローカルにインストールされているため、この設定はこのハイパーバイザーにのみ適用されます。

    • VIRTWHO_INTERVAL の値を変更して、virt-who がハイパーバイザーをクエリーする頻度を分単位で指定します。仮想マシンには最長で 7 日間の一時的なサブスクリプションが付与されるため、頻繁な照会は必要なく、使用環境のサイズに適した間隔を選択できます。ほとんどの環境では、1 日 1 回 (1440) が適しています。
    • virt-who 通信に HTTP プロキシーを使用する場合は、プロキシーを指定する行を追加します。

      http_proxy=https://proxy.example.com:443
    • このサーバーからの virt-who 通信に HTTP プロキシーを使用しない場合は、以下の行を追加します。

      NO_PROXY=*
      注記

      NO_PROXY=* は使用できますが、/etc/sysconfig/virt-who でのみ使用できます。

      NO_PROXY は、/etc/virt-who.conf で有効な設定ではありません。

  3. テンプレート設定ファイルを新規の個別の設定ファイルにコピーします。

    # cp /etc/virt-who.d/template.conf /etc/virt-who.d/local.conf
  4. 作成した設定ファイルを編集して、サンプルの値を、お使いの設定に固有の値に変更します。

    [local] 1
    type=libvirt 2
    owner=1234567 3
    hypervisor_id=hostname 4
    1
    この設定ファイルは virt-who のこのインスタンスによって管理される唯一の設定ファイルであるため、一意となる必要はありません。
    2
    この virt-who 接続が Red Hat ハイパーバイザーへの接続であることを指定します。
    3
    ハイパーバイザーが属する組織。ハイパーバイザーで subscription-manager orgs を実行して組織を見つけることができます。
    4
    ハイパーバイザーを特定する方法を指定します。hostname を使用して、サブスクリプション管理に意味のあるホスト名を指定します。ハイパーバイザーの名前が変更した場合は、uuid を使用して重複を避けることができます。個別のハイパーバイザーには hwuuid を使用しないでください。
  5. virt-who サービスを開始して有効にします。

    # systemctl enable --now virt-who

ハイパーバイザーごとに、この手順を繰り返します。

6.5.2. virt-who で VMware vCenter に接続する設定

以下の手順を使用して、virt-who が VMware vCenter Server に接続するよう設定します。

前提条件

  • vCenter Server で読み取り専用の virt-who ユーザーを作成している。この virt-who ユーザーには、最低でも vCenter Data Center のすべてのオブジェクトに対する読み取り専用アクセスが必要です。
  • Red Hat Enterprise Linux サーバーで virt-who ホストを準備している。

手順

  1. virt-who ホストで、virt-who-password ユーティリティーを使用して virt-who ユーザーのパスワードを暗号化します。

    # virt-who-password

    プロンプトが表示されたら、virt-who ユーザーのパスワードを入力し、暗号化された形式のパスワードを書き留めます。

  2. テンプレート設定ファイルを新規の個別の設定ファイルにコピーします。

    # cp /etc/virt-who.d/template.conf /etc/virt-who.d/vcenter1.conf

    トラブルシューティング時に設定ファイルを簡単に特定できるようにするには、VMware vCenter ホスト名を新規ファイル名として使用します。この例では、ホスト名は vcenter1 です。

  3. 作成した設定ファイルを編集して、サンプルの値を、お使いの設定に固有の値に変更します。

    [vcenter1] 1
    type=esx 2
    server=vcenter1.example.com 3
    username=virt_who_user 4
    encrypted_password=bd257f93d@482B76e6390cc54aec1a4d 5
    owner=1234567 6
    hypervisor_id=hostname 7
    filter_hosts=esx1.example.com, esx2.example.com 8
    1
    名前は個別の設定ファイルごとに一意でなければなりません。vCenter Server のホスト名を使用して、各ハイパーバイザーの設定ファイルを簡単に特定できます。
    2
    この virt-who 接続が VMware vCenter Server への接続であることを指定します。
    3
    vCenter サーバーの FQDN。
    4
    vCenter サーバーでの virt-who ユーザーの名前。
    5
    virt-who ユーザーの暗号化されたパスワード。
    6
    ハイパーバイザーが属する組織。ハイパーバイザーで subscription-manager orgs を実行して、組織を見つけることができます。
    7
    ハイパーバイザーを特定する方法を指定します。hostname を使用して、サブスクリプション管理に意味のあるホスト名を指定します。ハイパーバイザーの名前が変更した場合は、uuid または hwuuid を使用して重複を防ぐことができます。
    8
    一部のハイパーバイザーが Red Hat Enterprise Linux 仮想マシンを実行しない場合、そのハイパーバイザーが virt-who により報告される必要はありません。以下のオプションのいずれかを使用してハイパーバイザーにフィルターを設定できます。ワイルドカードと正規表現がサポートされます。名前に特殊文字が含まれている場合は、引用符で囲みます。
    • filter_hosts または exclude_hosts: 指定した hypervisor_id に従って、ハイパーバイザーのコンマ区切りリストを指定します。たとえば、ハイパーバイザーがホスト名で識別される場合は、そのハイパーバイザーをホスト名に含めるか、または除外する必要があります。
    • filter_host_parents または exclude_host_parents: クラスターのコンマ区切りリストを指定します。フィルターが設定されたクラスターのハイパーバイザーは、virt-who によって報告されます。除外されたクラスターのハイパーバイザーは、virt-who によって報告されません。
  4. virt-who サービスを再起動します。

    # systemctl restart virt-who

各 vCenter Server について、この手順を繰り返します。

6.5.3. Microsoft Hyper-V に接続するための virt-who の設定

以下の手順を使用して、virt-who が Microsoft Hyper-V ハイパーバイザーに接続するように設定します。

前提条件

  • Red Hat Enterprise Linux 9 以降である。
  • Red Hat Enterprise Linux サーバーで virt-who ホストを準備している。
  • ハイパーバイザーの基本的な認証モードが有効になっている。
  • ハイパーバイザーでリモート管理が有効になっている。
  • ハイパーバイザーに読み取り専用の virt-who ユーザーが作成されている。

手順

  1. virt-who ホストで、virt-who-password ユーティリティーを使用して、ハイパーバイザーの virt-who ユーザーのパスワードを暗号化します。

    # virt-who-password

    プロンプトが表示されたら、virt-who ユーザーのパスワードを入力し、暗号化された形式のパスワードを書き留めます。

  2. テンプレート設定ファイルを新規の個別の設定ファイルにコピーします。

    # cp /etc/virt-who.d/template.conf /etc/virt-who.d/hyperv1.conf

    トラブルシューティング時に設定ファイルを簡単に特定できるようにするには、ハイパーバイザーのホスト名を新規ファイル名として使用します。この例では、ホスト名は hyperv1 です。

  3. 作成した設定ファイルを編集して、サンプルの値を、お使いの設定に固有の値に変更します。

    [hyperv1] 1
    type=hyperv 2
    server=hyperv1.example.com 3
    username=virt_who_user 4
    encrypted_password=bd257f93d@482B76e6390cc54aec1a4d 5
    owner=1234567 6
    hypervisor_id=hostname 7
    1
    名前は個別の設定ファイルごとに一意でなければなりません。ハイパーバイザーのホスト名を使用して、各ハイパーバイザーの設定ファイルを簡単に特定できます。
    2
    この virt-who 接続が Microsoft Hyper-V ハイパーバイザーに属することを指定します。
    3
    Hyper-V ハイパーバイザーの FQDN。
    4
    ハイパーバイザーの virt-who ユーザーの名前。
    5
    virt-who ユーザーの暗号化されたパスワード。
    6
    このハイパーバイザーが属する組織。ハイパーバイザーで subscription-manager orgs を実行して組織を見つけることができます。
    7
    ハイパーバイザーを特定する方法を指定します。hostname を使用して、サブスクリプション管理に意味のあるホスト名を指定します。ハイパーバイザーの名前が変更した場合は、uuid を使用して重複を避けることができます。個別のハイパーバイザーには hwuuid を使用しないでください。
  4. virt-who サービスを再起動します。

    # systemctl restart virt-who

ハイパーバイザーごとに、この手順を繰り返します。

6.5.4. OpenShift Virtualization に接続するための virt-who の設定

サポート対象のプラットフォーム

virt-who による OpenShift Virtualization のサポート状況。

  • virt-who-0.28.x-1.el7 (RHEL 7.9)
  • virt-who-0.29.x-1.el8 (RHEL 8.3)

手順

  1. サブスクライブするクラスターで、プロジェクトと virt-who という名前のサービスアカウントを作成します。

    $ oc new-project virt-who
    $ oc create serviceaccount virt-who
  2. ノードおよび仮想マシンインスタンスをリスト表示するためのクラスターロールを作成します。

    $ oc create clusterrole lsnodes --verb=list --resource=nodes
    $ oc create clusterrole lsvmis --verb=list --resource=vmis
  3. クラスターロールバインディングを作成します。

    $ oc adm policy add-cluster-role-to-user lsnodes system:serviceaccount:virt-who:virt-who
    $ oc adm policy add-cluster-role-to-user lsvmis system:serviceaccount:virt-who:virt-who
  4. virt-who システムアカウントに、実行中のすべての VM をリスト表示する権限があることを確認します。

    $ oc get vmis -A --as=system:serviceaccount:virt-who:virt-who
  5. ホスト (または OpenShift Virtualization で実行している仮想マシン) に virt-who をインストールします。

    [virtwho-host]$ yum install virt-who
  6. サブスクライブしているホストで、所有者番号を見つけます。

    $ subscription-manager orgs
  7. テンプレート設定ファイルを新規の個別の設定ファイルにコピーします。トラブルシューティングの際に設定ファイルを簡単に特定できるように、クラスター API のホスト名を使用します。この例では、ホスト名は openshift-cluster-1 です。

    [virtwho-host]# cp /etc/virt-who.d/template.conf /etc/virt-who.d/openshift-cluster-1.conf
    [cnv]
    type=kubevirt
    kubeconfig=/root/.kube/config
    hypervisor_id=hostname
    owner=<owner_number>
  8. virt-who サービスアカウントのトークンを取得します。

    # oc serviceaccounts get-token virt-who
  9. /usr/bin/oc が利用できない場合は、/usr/bin/oc をインストールし、トークンを使用してログインして有効な kubeconfig ファイルを作成します。url を指定して、クラスター api を指定する必要があります。以下に例を示します。

    [virtwho-host]# oc login https://api.testcluster-1.example.org:6443 --token=<token>
    1. kubeconfig ファイルで OpenShift Virtualization の certificate-authority (CA) 証明書を使用するには、クラスターから抽出してコントローラーデーモンとして virt-who を実行しているシステムのファイルに保存します。

      oc get secret -n openshift-kube-apiserver-operator loadbalancer-serving-signer -o jsonpath='{.data.tls\.crt}' | base64 -d > $cluster-ca.pem
    2. kubeconfig ファイルは、抽出した CA 証明書を含めるように変更します。以下に例を示します。

      [virtwho-host]$ cat /root/.kube/config
      apiVersion: v1
      clusters:
      - cluster:
          server: https://api.testcluster.example.org:6443
          certificate-authority: /root/testcluster-ca.pem
        name: api-testcluster-example-org:6443
      contexts:
      - context:
          cluster: api-test-cluster-example-org:6443
          namespace: default
  10. サービスを開始する前に、設定を手動でテストできます。

    [virtwho-host]# virt-who --print
注記

jq プログラムがインストールされている場合は、# virt-who --print | jq のように、そのプログラムを使用して出力を簡素化できます。

  1. virt-who サービスを有効にします。

    [virtwho-host]# systemctl enable virt-who
  2. virt-who サービスを再起動して、新しい設定を使用します。

    [virtwho-host]# systemctl restart virt-who

virt-who ログは、/var/log/rhsm/rhsm.log にあります。このファイルで、設定または接続エラーを確認できます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.