Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第18章 ゲストのリモート管理

このセクションでは、ゲストをリモートで管理する方法について説明しています。

18.1. トランスポートモード

リモート管理においては、libvirt が以下のトランスポートモードに対応します。

トランスポート層セキュリティー(TLS)

Transport Layer Security TLS 1.0(SSL 3.1)は認証され、暗号化された TCP/IP ソケット。通常はパブリックポート番号でリッスンします。これを使用するには、クライアント証明書とサーバー証明書を生成する必要があります。標準ポートは 16514 です。「TLS および SSL でのリモート管理」

SSH

Secure Shell プロトコル(SSH)接続を介して転送されます。libvirt デーモン(libvirt)がリモートマシンで実行されている必要があります。ポート 22 は、SSH アクセス用に開いている必要があります。SSH キー管理 (ssh-agent ユーティリティーなど)のをいくつか使用するか、パスワードの入力を求めるプロンプトが表示されます。「SSH でのリモート管理」

UNIX ソケット

UNIX ドメインソケットはローカルマシンでのみアクセスできます。ソケットは暗号化されず、認証に UNIX パーミッションまたは SELinux を使用します。標準のソケット名は /var/run/libvirt/libvirt-sock および /var/run/libvirt/libvirt-sock-ro (読み取り専用接続の場合)です。

EXT

ext パラメーターは、libvirt の範囲外の手段でリモートマシンへの接続を行う任意の外部プログラムに使用されます。このパラメーターはサポート対象外です。

TCP

暗号化されていない TCP/IP ソケット。実稼働環境での使用は推奨されません。通常は無効にされていますが、管理者は、信頼できるネットワークのテストまたは使用に対して有効にできます。デフォルトのポートは 16509 です。

その他が指定されていない場合はデフォルトのトランスポートは TLS です。

リモート URI

Uniform Resource Identifier(URI) は、virsh および libvirt により、リモートホストに接続するのに使用されます。URI は、virsh コマンドの --connect パラメーターとともに使用して、リモートホストで単一コマンドや移行を行うこともできます。リモート URI は通常のローカル URI を取得し、ホスト名またはトランスポート名のいずれか、またはその両方を追加します。特殊なケースとして、「remote」の URI スキームを使用すると、最適なハイパーバイザードライバーをプローブするようにリモートの libvirtd サーバーに指示します。これは、ローカル接続の NULL URI を渡すことと同じです。

libvirt URI は一般的な形式を取ります(角括弧の中括弧「[]」は任意の機能を表します)。
driver[+transport]://[username@][hostname][:port]/path[?extraparameters]
ハイパーバイザー(ドライバー)が QEMU の場合、パスは必須であることに注意してください。
以下は、有効なリモート URI の例です。
  • qemu://hostname/
外部ロケーションをターゲットにするには、トランスポートメソッドまたはホスト名を指定する必要があります。詳細は、libvirt アップストリームのドキュメント を参照してください。

リモート管理パラメーターの例

  • SSH トランスポートと、SSH ユーザー名 virtuser を使用して、host2 という名前のリモート KVM ホストに接続します。それぞれの接続コマンドは [URI] [--readonly] です。virsh connect コマンドの詳細は、を参照してください。 「virsh Connect によるハイパーバイザーへの接続」
    qemu+ssh://virtuser@host2/
  • TLS を使用して、host2 という名前のホストでリモート KVM ハイパーバイザーに接続します。
    qemu://host2/

テスト例

  • 標準以外の UNIX ソケットでローカル KVM ハイパーバイザーに接続します。この場合、UNIX ソケットへの完全パスは明示的に提供されます。
    qemu+unix:///system?socket=/opt/libvirt/run/libvirt/libvirt-sock
  • libvirt デーモンに、ポート 5000 の IP アドレス 10.1.1.10 を使用して、暗号化されていない TCP/IP 接続に接続します。ここでは、デフォルト設定でテストドライバーを使用します。
    test+tcp://10.1.1.10:5000/default

追加の URI パラメーター

追加のパラメーターをリモート URI に追加できます。以下の表は、認識済みのパラメーターを示しています。その他のパラメーターはすべて無視されます。パラメーター値は URI エスケープ処理(つまり、疑問符(?)がパラメーターの前に追加され、特殊文字が URI 形式に変換される前)である必要があります。

表18.1 追加の URI パラメーター

名前 トランスポートモード 説明 使用法の例
name すべてのモード リモート virConnectOpen 関数に渡される名前。この名前は通常、リモート URI から transporthostnameport numberusername、および追加パラメーターを削除して形成されます。ただし、特定のケースでは、名前を明示的に指定することが望ましい場合があります。 name=qemu:///system
command SSH と ext 外部コマンドこれは、ext トランスポートで必要です。ssh の場合、デフォルトは ssh です。PATH はコマンドの検索です。 command=/opt/openssh/bin/ssh
socket UNIX および ssh UNIX ドメインソケットへのパスで、デフォルトが上書きされます。ssh トランスポートの場合は、リモート netcat コマンドに渡されます(netcat を参照)。 socket=/opt/libvirt/run/libvirt/libvirt-sock
no_verify tls 0 以外の値に設定すると、サーバーの証明書を確認するクライアントが無効になります。サーバーの証明書または IP アドレス確認を無効にするには、libvirtd の設定を変更する必要があります。 no_verify=1
no_tty ssh 0 以外の値に設定すると、リモートマシンに自動的にログインできない場合に ssh がパスワードを要求することは停止します。ターミナルにアクセスできない場合 に使用してください。 no_tty=1