第18章 ゲストのリモート管理
18.1. トランスポートモード
libvirt
では次のようなトランスポートモードに対応しています。
Transport Layer Security TLS 1.0 (SSL 3.1) で認証され、暗号化される TCP/IP ソケットは、通常パブリックポート番号でリッスンします。これを使用するには、クライアントとサーバーの証明書を生成する必要があります。標準のポートは 16514 です。詳細は、「TLS と SSL 経由のリモート管理」 を参照してください。
Secure Shell protocol (SSH) 接続上のトランスポートです。libvirt デーモン (libvirtd
) がリモートマシン上で実行されている必要があります。ポート 22 が SSH アクセス用に開いていなければなりません。いずれかの SSH キー管理 (ssh-agent
ユーティリティーなど) を使用しないとパスワードの入力が求められます。詳細については、「SSH によるリモート管理」 を参照してください。
UNIX ドメインソケットはローカルマシン上でのみアクセス可能です。ソケットは暗号化されておらず、認証のために SELinux または UNIX 権限を使用します。標準のソケット名は /var/run/libvirt/libvirt-sock
と /var/run/libvirt/libvirt-sock-ro
(読み取り専用の接続) です。
ext
パラメーターは、libvirt の範囲外の手段によりリモートマシンに接続できる外部プログラムに使用されます。このパラメーターはサポートされていません。
暗号化されていない TCP/IP ソケットです。実稼働での使用には推奨されません。通常は無効になっていますが、管理者はテストを行う場合や信頼できるネットワークでこれを有効にできます。デフォルトのポートは 16509 です。
URI (Uniform Resource Identifier) は、リモートホストに接続するために virsh
と libvirt によって使用されます。また URI は --connect
コマンドの virsh
パラメーターと一緒に使用すると、リモートホストで単一コマンドや移行を実行することができます。リモート URI は一般的なローカル URI を取り、ホスト名またはトランスポート名、またはそれら両方を追加して形成されます。特殊なケースとして、「リモート」の URI スキームを使用すると、リモート libvirtd サーバーは最適なハイパーバイザードライバーを探索するように指示されます。これはローカル接続用に NULL URI を渡すのと同等です。
driver[+transport]://[username@][hostname][:port]/path[?extraparameters]
- qemu://hostname/
リモート管理の例
host2
という名前のリモート KVM ホストに接続します。SSH トランスポートを使用し、SSH ユーザー名はvirtuser
です。それぞれの connect コマンドはconnect [URI] [--readonly]
です。virsh connect
コマンドの詳細は、「virsh Connect を使用したハイパーバイザーへの接続」を参照してください。qemu+ssh://virtuser@host2/
- TLS を使用して、
host2
という名前のホスト上のリモート KVM ハイパーバイザーに接続します。qemu://host2/
テスト用サンプル
- ローカルの KVM ハイパーバイザーに非標準の UNIX ソケットで接続します。この例では、UNIX ソケットへの完全パスが明示的に指定されています。
qemu+unix:///system?socket=/opt/libvirt/run/libvirt/libvirt-sock
- 暗号化していない TCP/IP 接続で libvirt デーモンに接続します。IP アドレスが 10.1.1.10 でポートが 5000 のサーバーへの接続です。この例ではデフォルト設定の test ドライバーが使用されています。
test+tcp://10.1.1.10:5000/default
追加パラメーターをリモート URI に追加することができます。以下の表に認識されているパラメーターを示します。これ以外のパラメーターはすべて無視されます。パラメーターの値は URI エスケープされる必要があることに注意してください (つまり、疑問符 (?) をパラメーターの前に付けると、特殊文字が URI 形式に変換されます)。
表18.1 追加の URI パラメーター
名前 | トランスポートモード | 説明 | 使用法の例 |
---|---|---|---|
name | すべてのモード | name はリモート virConnectOpen 関数に渡されます。通常 name はリモート URI から transport 、hostname 、port number 、username 、および追加パラメーターを取り除いたものになります。ただし、一部の複雑なケースでは、name を明示的に指定するのが適切な場合もあります。 | name=qemu:///system |
command | ssh と ext | 外部コマンドです。外部トランスポートの場合に必須になります。ssh の場合、デフォルトは ssh です。command の PATH が検索されます。 | command=/opt/openssh/bin/ssh |
socket | unix と ssh | UNIX ドメインソケットへのパスで、デフォルトを上書きします。ssh トランスポートの場合、これがリモート netcat コマンドに渡されます (netcat を参照)。 | socket=/opt/libvirt/run/libvirt/libvirt-sock |
no_verify | tls | ゼロ以外の値が設定されていると、クライアント側のサーバー証明書チェックが無効になります。サーバー側のクライアント証明書チェックまたは IP アドレスチェックを無効にする場合は、libvirtd の設定を変更する必要があります。 | no_verify=1 |
no_tty | ssh | ゼロ以外の値に設定すると、リモートマシンに自動的にログインできない場合に SSH がパスワードの入力を求めないようにします。ターミナルにアクセスできない場合にこれを使用します。 | no_tty=1 |
このページには機械翻訳が使用されている場合があります (詳細はこちら)。