2.3. リモート仮想化ホストへのアクセスを容易にするための設定
コマンドラインで libvirt ユーティリティーを使用してリモートホストシステム上の仮想マシン (VM) を管理する場合、リモートホストへの接続プロセスを最適化できます。
デフォルトでは、リモートホスト上の仮想マシンに接続するには、-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
この改善機能を有効にするには、以下の手順に従ってください。
前提条件
- ホストシステムで仮想化が有効になっている。手順は、仮想マシンをホストする RHEL の準備 を参照してください。
手順
ローカルホスト上の
~/.ssh/configファイルを編集し、以下のようなエントリーを追加します。Host <host-alias> User root Hostname 192.0.2.1この例では、<host-alias> は、
root@192.0.2.1リモートホスト接続に関連付けられた短縮名です。/etc/libvirt/libvirt.confファイルを編集し、以下のような行を追加します。uri_aliases = [ "<qemu-alias>=qemu+ssh://<host-alias>/system", ]この例では、<qemu-alias> は、QEMU および
libvirtユーティリティーがqemu+ssh://192.0.2.1/system接続に使用するホストエイリアスです。オプション:
libvirtユーティリティーを、1 台のリモートホストで排他的に使用する場合は、libvirtベースのユーティリティーのデフォルトターゲットとして特定の接続を設定することもできます。/etc/libvirt/libvirt.confファイルを編集し、uri_defaultパラメーターの値を <qemu-alias> に設定して、デフォルトのlibvirtターゲットとして指定します。# 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 = "<qemu-alias>"警告ローカルホスト上または別のリモートホスト上の仮想マシンも管理する場合、これを行うことはできません。
オプション: リモートホストに接続する際に root パスワードを指定する必要がないようにするには、以下の方法のいずれか、または複数を使用します。
- リモートホストへの鍵ベースの SSH アクセスを設定する
- SSH 接続の多重化を使用してリモートシステムに接続する
- Identity Management における Kerberos 認証
検証
ローカルシステムで
libvirtベースのユーティリティーを使用し、-c <qemu-alias>パラメーターを追加することで、リモートの仮想マシンを管理できることを確認します。これにより、リモートホストの SSH でコマンドが自動的に実行されます。たとえば、以下が、192.0.2.1 リモートホスト (このホストへの接続は、前の手順で <qemu-alias> としてセットアップ) の仮想マシンをリスト表示していることを確認します。
# virsh -c <qemu-alias> list正常な出力:
root@192.0.2.1's password: Id Name State ---------------------------------------- 1 example-remote-guest runningデフォルトの URI をリモートホストにセットアップしている場合は、
libvirtコマンドが指定されたリモートホストに自動的に適用されるようにします。$ virsh list正常な出力:
root@192.0.2.1's password: Id Name State --------------------------------- 1 example-remote-guest running