Wie erstelle ich einen KVM-Gast mit SPICE-Grafiken, aber TLS deaktiviert mit virt-install?

7

Ich verwende virt-install(siehe unten), um einen Gast zu erstellen. Alles scheint in Ordnung zu sein, bis es sich über die automatische Zuweisung des SPICE TLS-Ports beschwert.

Hier ist, was ich laufe und die volle Ausgabe:

# 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.

Der Fehler ist:

FEHLER nicht unterstützte Konfiguration: Automatische Zuweisung des angeforderten Gewürz-TLS-Ports, aber das Gewürz-TLS ist in qemu.conf deaktiviert

und in der Tat in meinem habe /etc/libvirt/qemu.confich:

spice_tls = 0

(und das absichtlich).

Wie kann ich einen KVM-Gast mit dem SPICE-Protokoll für Grafiken erstellen, jedoch mit deaktiviertem TLS ?

Ich bezweifle, dass dies relevant ist, aber der Grund, warum ich TLS deaktivieren möchte, ist, dass ich die Verbindung zu SPICE bereits über SSH tunnele. Keine zusätzliche Verschlüsselungsebene erforderlich.


Das Hostsystem ist Ubuntu 14.04.1. Paketversionen sind:

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

(alles auf dem neuesten Stand, soweit apt-getes betrifft)

0xC0000022L
quelle

Antworten:

6

Okay, ich habe es alleine umgangen. In der Option:

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

Entfernen Sie den portParameter so, dass er:

--graphics spice,listen=127.0.0.1

Anschließend müssen Sie das <graphics />Element in der libvirtXML-Konfigurationsdatei konfigurieren. Meine Anrufung von virt-installgab mir Folgendes:

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

Es gibt eine Einschränkung. Ich habe die Installation abgeschlossen, während SPICE noch mit dem standardmäßig automatisch verbundenen Port verbunden war (in meinem Fall 5900). Wenn Sie den Gast vor Abschluss der Installation herunterfahren, wird der gesamte von initiierte Prozess virt-installunterbrochen.

Um es zu ändern, sollte man den Gast herunterfahren und das XML wie folgt bearbeiten virsh edit vmname(wobei vmnamedurch Ihren Namen ersetzt werden sollte):

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

Mögliche Problemumgehung für "Port in Use" -Konflikte. Verwenden Sie eine andere lokale Netzadresse als 127.0.0.1 von 127.0.0.0/24, z. B. 127.0.0.2 usw., um zuzuhören.

HINWEIS: Wenn jemand eine bessere (dh tatsächliche) Lösung finden kann, akzeptiere ich diese andere Antwort. Diese Beschreibung richtet sich hauptsächlich an andere Personen, bei denen möglicherweise dasselbe Problem auftritt.

0xC0000022L
quelle
2

Die Lösung besteht darin, kvm / virt anzuweisen, standardmäßig eine unsichere Verbindung zu verwenden.

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

Stellen Sie das defaultModeauf insecureund Sie können sogar verwenden autoport='yes'und alles ist in Ordnung.

Ein Hinweis, wenn Sie den Port durchsuchen, müssen Sie verwenden domdisplay:

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

Ich weiß nicht, ob dies ein Fehler oder ein korrektes Verhalten ist, aber die Ausgabe von virsh domdisplay --domain openshift1zeigt localhoststatt 0.0.0.0. Sie können jedoch eine Verbindung von extern mit der Server-IP / DNS zu Ihren Gast-VMs herstellen. Stellen Sie sicher, dass Sie über die Firewall eine Verbindung zu diesen Ports herstellen können und sogar kvm / virt 0.0.0.0wie oben gezeigt zuhört .

Tobias Hochgürtel
quelle