6.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
この改善機能を有効にするには、以下の手順を行います。
手順
~/.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/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", ]
検証
ローカルシステムで 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 つ以上行います。
- リモートホストへのキーベースの SSH アクセスを設定する
- SSH 接続の多重化を使用して、リモートシステムに接続する。
- Identity Management における Kerberos 認証
-
-c(または--connect) オプションを使用して、リモートホストでvirt-install、virt-viewer、およびvirshコマンドを実行できます。