web-dev-qa-db-ja.com

KVM SPICEグラフィックスのゲストを作成する方法ですが、virt-installを使用してTLSを無効にしますか?

使ってます virt-install(下記参照)ゲストを作成します。 SPICE TLSポートの自動割り当てについて文句を言うところまではすべて問題ないようです。

これが私が実行しているものと完全な出力です:

# Sudo virt-install --name vmname --ram 1024 --os-type=linux --os-variant=ubuntutrusty --disk path=/data/vm/vmname_sda.qcow2,bus=virtio,size=10,sparse=false --noautoconsole --console pty,target_type=virtio --accelerate --hvm --network=network:default --graphics spice,port=20001,listen=127.0.0.1

Starting install...
Retrieving file MANIFEST...                                                                                  | 2.1 kB     00:00 ...
Retrieving file MANIFEST...                                                                                  | 2.1 kB     00:00 ...
Retrieving file linux...                                                                                     |  11 MB     00:00 ...
Retrieving file initrd.gz...                                                                                 |  41 MB     00:00 ...
ERROR    unsupported configuration: Auto allocation of spice TLS port requested but spice TLS is disabled in qemu.conf
Domain installation does not appear to have been successful.
If it was, you can restart your domain by running:
  virsh --connect qemu:///system start vmname
otherwise, please restart your installation.

エラーは:

サポートされていない構成のエラー:スパイスTLSポートの自動割り当てが要求されましたが、qemu.confでスパイスTLSが無効になっています

そして確かに私の/etc/libvirt/qemu.conf 私が持っています:

spice_tls = 0

(そして意図的にそう)。

では、どうすればグラフィックスにSPICEプロトコルを使用してKVMゲストを作成できますかただし、TLSが無効になっている場合

妥当ではないかと思いますが、TLSを無効にしたいのは、SSH経由でSPICEへの接続をすでにトンネルしているためです。追加の暗号化レイヤーは必要ありません。


ホストシステムはUbuntu 14.04.1です。パッケージのバージョンは次のとおりです。

  • virtinst:0.600.4-3ubuntu2
  • qemu-kvm:2.0.0 + dfsg-2ubuntu1.2

(すべて最新のapt-getが心配です)

7
0xC0000022L

さて、私は自分でそれを回避しました。オプションで:

--graphics spice,port=20001,listen=127.0.0.1

portパラメータを削除して、次のようにします。

--graphics spice,listen=127.0.0.1

次に、libvirt XML構成ファイルで the <graphics /> element を構成する必要があります。私のvirt-installの呼び出しは私にこれを与えました:

<graphics type='spice' autoport='yes' listen='127.0.0.1'>
  <listen type='address' address='127.0.0.1'/>
</graphics>

注意点が1つあります。SPICEがデフォルトの自動接続ポート(私の場合は5900)に接続されている間にインストールを完了しました。インストールが完了する前にゲストをシャットダウンすると、virt-installによって開始されたプロセス全体が中断されます。

これを変更するには、ゲストをシャットダウンし、virsh edit vmnameを使用してXMLを次のように編集する必要があります(vmnameは自分の名前に置き換えます)。

<graphics type='spice' autoport='no' port='20001' listen='127.0.0.1'>
  <listen type='address' address='127.0.0.1'/>
</graphics>

「使用中のポート」の競合に対する可能な回避策。 127.0.0.0/24から127.0.0.1以外のローカルネットアドレスを使用します。 127.0.0.2などをリッスンします。

注:誰かがより良い(つまり、実際の)解決策を思い付くことができれば、私は他の答えを受け入れます。この記事は主に、同じ問題が発生する可能性のある他の人向けのものです。

6
0xC0000022L

解決策は、デフォルトで安全でない接続を使用するようにkvm/virtに指示することです。

<graphics type='spice' autoport='yes' listen='0.0.0.0' defaultMode='insecure'>
  <listen type='address' address='0.0.0.0'/>
</graphics>

defaultModeinsecureに設定すると、autoport='yes'でも使用でき、すべて問題ありません。

1つのヒントとして、ポートを検索するときは、domdisplayを使用する必要があります。

[root@kvm repo]# virsh domdisplay --domain openshift1
spice://localhost:5900

これがバグなのか、正しい動作なのかはわかりませんが、virsh domdisplay --domain openshift1の出力に0.0.0.0ではなくlocalhostと表示されます。ただし、server-ip/dnsを使用して外部からゲストvmに接続できます。ファイアウォールでこれらのポートに接続できることを確認してください。kvm/ virtでも、上記のように0.0.0.0をリッスンします。

2