使ってます 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です。パッケージのバージョンは次のとおりです。
(すべて最新のapt-get
が心配です)
さて、私は自分でそれを回避しました。オプションで:
--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などをリッスンします。
注:誰かがより良い(つまり、実際の)解決策を思い付くことができれば、私は他の答えを受け入れます。この記事は主に、同じ問題が発生する可能性のある他の人向けのものです。
解決策は、デフォルトで安全でない接続を使用するようにkvm/virtに指示することです。
<graphics type='spice' autoport='yes' listen='0.0.0.0' defaultMode='insecure'>
<listen type='address' address='0.0.0.0'/>
</graphics>
defaultMode
をinsecure
に設定すると、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
をリッスンします。