Red Hat Training

A Red Hat training course is available for RHEL 8

2.4.5. リモートの仮想化ホストへの簡単なアクセスの設定

libvirt ユーティリティを使用してリモートホストシステムの仮想マシンを管理する場合は、-c qemu+ssh://root@hostname/system 構文を使用することが推奨されます。たとえば、ホスト 10.0.0.1 で、root で virsh list コマンドを実行します。

# virsh -c qemu+ssh://root@10.0.0.1/system list

root@10.0.0.1's password:
Last login: Mon Feb 18 07:28:55 2019

Id   Name              State
---------------------------------
1    remote-guest      running

ただし、便宜上、SSH および libvirt の設定を変更すれば、接続の詳細を完全に指定する必要がなくなります。たとえば、以下を行うことができます。

# virsh -c remote-host list

root@10.0.0.1's password:
Last login: Mon Feb 18 07:28:55 2019

Id   Name              State
---------------------------------
1    remote-guest      running

この改善を有効にするには、以下の手順を行います。

手順

  1. ~/.ssh/config ファイルを編集するか作成し、次の行を追加します。ここで host-alias は、特定のリモートホストに関連付けられる短縮名です。hosturl は、ホストの URL アドレスです。

    Host host-alias
            User                    root
            Hostname                hosturl

    たとえば、次の例は、root@10.0.0.1 に tyrannosaurus エイリアスを設定します。

    Host tyrannosaurus
            User                    root
            Hostname                10.0.0.1
  2. /etc/libvirt/libvirt.conf ファイルを編集するか作成し、以下を追加します。qemu-host-alias は、QEMU ユーティリティーおよび libvirt ユーティリティーが目的のホストに関連付けるホストのエイリアスです。

    uri_aliases = [
      "qemu-host-alias=qemu+ssh://host-alias/system",
    ]

    たとえば、次の例では、1 つ前の手順で設定した tyrannosaurus エイリアスを使用して、t-rex エイリアスを設定します。これは、qemu+ssh://10.0.0.1/system を表します。

    uri_aliases = [
      "t-rex=qemu+ssh://tyrannosaurus/system",
    ]
  3. これにより、ローカルシステムで libvirt ベースのユーティリティーを使用し、-c qemu-host-alias パラメーターをコマンドに追加することで、リモートの仮想マシンを管理できます。これにより、リモートホストの SSH でコマンドが自動的に実行されます。

    たとえば、次の例では、リモートホスト 10.0.0.1 上の仮想マシン (上の手順で t-rex として設定した接続) の一覧を表示します。

    $ virsh -c t-rex list
    
    root@10.0.0.1's password:
    Last login: Mon Feb 18 07:28:55 2019
    
    Id   Name              State
    ---------------------------------
    1    velociraptor      running
  4. (必要に応じて) libvirt ユーティリティーを、1 台のリモートホストで排他的に使用する場合は、libvirt ベースのユーティリティーのデフォルトターゲットとして特定の接続を設定することもできます。これを行うには、/etc/libvirt/libvirt.conf ファイルを編集して、uri_default パラメーターの値を qemu-host-alias に設定します。たとえば、次の例では、上の手順でデフォルトの libvirt ターゲットとして設定した t-rex ホストのエイリアスを使用します。

    # These can be used in cases when no URI is supplied by the application
    # (@uri_default also prevents probing of the hypervisor driver).
    #
    uri_default = "t-rex"

    これにより、指定したリモートホストで、libvirt ベースのコマンドがすべて自動的に実行されます。

    $ virsh list
    root@10.0.0.1's password:
    Last login: Mon Feb 18 07:28:55 2019
    
    Id   Name              State
    ---------------------------------
    1    velociraptor      running

    ただし、ローカルホストまたは別のリモートホストでも仮想マシンを管理する場合、この方法は推奨されません。

関連情報

  • リモートホストに接続する場合は、リモートシステムに root パスワードを指定しないように設定することもできます。これを行うには、以下のいずれかを行います。

  • 上述の -c (または --connect) オプションと、リモートホストのアクセス設定を使用できるユーティリティーには、以下が含まれます。