2017-11-20 4 views
0

libvirt Version: 3.2.0restart libvirtd --listen Fehler

Dies ist meine Konfiguration von libvirtd.conf.

vim /etc/libvirt/libvirtd.conf 

listen_tls = 0 
listen_tcp = 1 
auth_tcp = "none" 

Wenn ich die obige Konfiguration nicht verwende, schalte ich libvirt ohne Probleme herunter und starte sie neu. Aber weil ich Migrate leben will, so muß ich die oben genannten Parameter hinzuzufügen, Nach Problemen Hinzufügen und Ursache der Abschaltung und Neustart fehlgeschlagen

cat /usr/lib/systemd/system/libvirtd.service 

[[email protected] wl]# cat /usr/lib/systemd/system/libvirtd.service 
# NB we don't use socket activation. When libvirtd starts it will 
# spawn any virtual machines registered for autostart. We want this 
# to occur on every boot, regardless of whether any client connects 
# to a socket. Thus socket activation doesn't have any benefit 

[Unit] 
Description=Virtualization daemon 
Requires=virtlogd.socket 
Requires=virtlockd.socket 
Before=libvirt-guests.service 
After=network.target 
After=dbus.service 
After=iscsid.service 
After=apparmor.service 
After=local-fs.target 
After=remote-fs.target 
Documentation=man:libvirtd(8) 
Documentation=http://libvirt.org 

[Service] 
Type=notify 
EnvironmentFile=-/etc/sysconfig/libvirtd 
ExecStart=/usr/sbin/libvirtd $LIBVIRTD_ARGS **-d -l** 
ExecReload=/bin/kill -HUP $MAINPID 
KillMode=process 
Restart=on-failure 
# At least 1 FD per guest, often 2 (eg qemu monitor + qemu agent). 
# eg if we want to support 4096 guests, we'll typically need 8192 FDs 
# If changing this, also consider virtlogd.service & virtlockd.service 
# limits which are also related to number of guests 
LimitNOFILE=8192 

[Install] 
WantedBy=multi-user.target 
Also=virtlockd.socket 
Also=virtlogd.socket 

-d -l über der kühne Arbeit, auch Live-Migrate zu unterstützen und

zunächst verwende ich "systemctl starten libvirtd" libvirt zu starten,

dann systemctl libvirtd zu stoppen, aber die libvirt nicht‘schließen

das Problem ist, dass ich die Verwendung "systemctl neu starten libvirtd" Befehl wird ein Fehler sein

Möchten Sie fragen, was ist das Problem? Wie löse ich es?

Antwort

0

Folgende Parameter Sie eingestellt haben:

listen_tls = 0 
listen_tcp = 1 
auth_tcp = "none" 

sind A MASSIVE SICHERHEITS HOLE. Eine Verbindung zu libvirtd gilt als Privileg, das einem root-Konto entspricht. Wenn Sie also die gesamte Authentifizierung deaktivieren und den TCP-Socket anstelle des TLS-Sockets verwenden, haben Sie eine Remote-Root-Shell ohne Verschlüsselung oder Authentifizierung geöffnet. Dies entspricht dem Ausführen eines Telnet-Servers und erlaubt Root-Login ohne Passwort. Tun Sie das nie einfach. Alle Dokumente, die Sie auffordern, dies für die Livemigration zu tun und falsch - Ich habe versucht, alle diese Dokumente seit Ewigkeiten offline zu nehmen, aber die Leute veröffentlichen diesen gefälschten Rat erneut wieder. &.

Die folgende Seite beschreibt die Einrichtung von Zertifikaten für TLS

https://libvirt.org/remote.html#Remote_certificates

Wenn Sie wirklich TLS nicht verwenden möchten, dann ist die beste Ausweich libvirtd zu sagen, ist SSH-Tunneling zu verwenden, um die zu verbinden Remote-Host.

WRT in die Unit-Datei, Sie sollten dies nicht direkt ändern müssen. Beachten Sie, dass es sich auf eine Datei /etc/sysconfig/libvirtd bezieht, bearbeiten Sie einfach diese cnoFig-Datei, und legen Sie die Variable LIBVIRTD_ARGS dort auf --listen fest.

Sie sagen, Sie haben einen Fehler beim Start von Systemctl, aber sagen Sie nicht, was der Fehler war ... Es ist ziemlich schwer/unmöglich, Anleitung zu geben, was das Problem ist, ohne den wirklichen Fehler zu kennen. Versuchen Sie 'systemctl status libvirtd.service', um die sinnvolle Fehlermeldung zu finden.