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

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

# virsh -c qemu+ssh://root@192.0.2.1/system list
root@192.0.2.1's password:

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

ただし、SSH および libvirt の設定を変更すれば、接続の詳細を完全に指定する必要がなくなります。以下に例を示します。

# virsh -c remote-host list
root@192.0.2.1's password:

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

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

手順

  1. ~/.ssh/config ファイルを以下のように編集します。ここで、host-alias は特定のリモートホストに関連付けられた短縮名および root@192.0.2.1 のエイリアス、hosturl は host の URL アドレスです。

    # vi ~/.ssh/config
    Host example-host-alias
      User                    root
      Hostname                192.0.2.1
  2. /etc/libvirt/libvirt.conf ファイルを以下のように編集します。example-qemu-host-alias は、QEMU および libvirt ユーティリティーが qemu+ssh://192.0.2.1/system に目的のホスト example-host-alias を関連付けるホストエイリアスです。

    # vi /etc/libvirt/libvirt.conf
    uri_aliases = [
      "example-qemu-host-alias=qemu+ssh://example-host-alias/system",
    ]

検証

  1. ローカルシステムで libvirt ベースのユーティリティーを使用し、-c qemu-host-alias パラメーターを追加することで、リモートの仮想マシンを管理できることを確認します。これにより、リモートホストの SSH でコマンドが自動的に実行されます。

    たとえば、以下のコマンドにより、前の手順で example-qemu-host-alias としてセットアップした接続である、192.0.2.1 リモートホスト上の仮想マシンがリスト表示されることを確認します。

    # virsh -c example-qemu-host-alias list
    
    root@192.0.2.1's password:
    
    Id   Name                       State
    ----------------------------------------
    1    example-remote-guest      running
    注記

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

次のステップ

libvirt ユーティリティーを、1 台のリモートホストで排他的に使用する場合は、libvirt ベースのユーティリティーのデフォルトターゲットとして特定の接続を設定することもできます。ただし、ローカルホストまたは別のリモートホストでも仮想マシンを管理する場合、この方法は推奨されません。

  • /etc/libvirt/libvirt.conf ファイルを編集して、uri_default パラメーターの値を、デフォルトの libvirt ターゲットとして example-qemu-host-alias に設定できます。

    # 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 = "example-qemu-host-alias"

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

    $ virsh list
    root@192.0.2.1's password:
    
    Id   Name              State
    ---------------------------------
    1   example-remote-guest      running
  • リモートホストに接続する場合、リモートシステムへの root パスワードの入力を回避できます。そのためには、以下の方法を 1 つ以上行います。

  • -c (または --connect) オプションを使用して、リモートホストで virt-installvirt-viewer、および virsh コマンドを実行できます。