virt-installを使用してSPICEグラフィックスがありますが、TLSを無効にしたKVMゲストを作成するにはどうすればよいですか?

virt-installを使用してSPICEグラフィックスがありますが、TLSを無効にしたKVMゲストを作成するにはどうすればよいですか?

私は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.

エラーは次のとおりです。

エラーサポートされていない設定:自動SPICE TLSポートの割り当てが要求されましたが、qemu.confでSPICE TLSが無効になっています。

実際、/etc/libvirt/qemu.conf私は以下を持っています:

spice_tls = 0

(そして意図的に)。

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

関連があるかどうか疑問ですが、TLSを無効にしたいのは、すでにSSH経由でSPICEにトンネリングしているからです。追加の暗号化層は必要ありません。


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

  • 仮想マシン: 0.600.4-3ubuntu2
  • qemu-kvm:2.0.0+dfsg-2ubuntu1.2

(現在はすべて最新ですapt-get。)

答え1

さて、この問題は私が直接解決しました。オプション中:

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

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

--graphics spice,listen=127.0.0.1

設定する必要があります<graphics />強制libvirt次に、XML構成ファイルから。私の電話は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中断されます。

これを変更するには、ゲストを閉じて次のようにXMLを次のように編集する必要がありますvirsh edit vmname(ここでは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など)を使用して聞いてください。

メモ:誰もがより良い(つまり実用的な)ソリューションを提案できる場合は、他の答えを受け入れます。この記事は、主に同じ問題が発生する可能性がある他の人のためのものです。

答え2

便利なパラメータがvirt-install失敗した場合は、次のように手動でxmlを作成できます。Xパス通事論。

--graphics "spice,port=20001,defaultMode=insecure,autoport=no"私にとっては、ペアを次の5つのパラメータに置き換えることが成功したソリューションでした。

    --xml 'xpath.delete=./devices/graphics' \
    --xml './devices/graphics/@defaultMode=insecure' \
    --xml './devices/graphics/@autoport=no' \
    --xml './devices/graphics/@type=spice' \
    --xml "./devices/graphics/@port=20001"

生成されたxmlについて疑問に思う人はこの--print-xmlオプションを追加できます。

答え3

解決策は、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出力localhostはです0.0.0.0。ただし、server-ip / dnsを使用して外部からゲストVMに接続できます。ファイアウォールがこれらのポートに接続できることを確認し、kvm / virtも上記のようにリッスンしていることを0.0.0.0確認してください。

答え4

上記のユーザー「sampi」の回答は正常に機能しましたが、リモートで接続するには次の行を追加する必要がありました。

--xml './devices/graphics/@listen=0.0.0.0' \

だからそれは

--xml 'xpath.delete=./devices/graphics' \
--xml './devices/graphics/@defaultMode=insecure' \
--xml './devices/graphics/@listen=0.0.0.0' \
--xml './devices/graphics/@autoport=no' \
--xml './devices/graphics/@type=spice' \
--xml "./devices/graphics/@port=20001"

完全に機能しているので、Linuxを使用して仮想マシンを作成し、リモートビューアを使用してWindowsから非常に簡単に接続できます。 @sampiに感謝 :)

関連情報