Emergen der notwendigen Pakete mit
euse -E parted qemu lvm
emerge -av libvirtd virtinst
Eventuell müssen die Pakete noch unmasked werden.
Einrichten des Autostartes mit
rc-update -a libvirtd default
Nachdem der Dienst mit
/etc/init.d/libvirtd start
gestartet wurde, kann man mit
virsh --connect qemu:///system
zu dem libvirt-Daemon verbinden und erhält, bei Erfolg, dessen Konsole.
Nun soll es auch möglich sein über das Netzwerk (auch Internet) auf den, in diesem Fall, extern laufendem Daemon zuzugreifen. Angeblich funktioniert das mit:
virsh -c "qemu+ssh://user@host/system"
Leider klappt das bei mir noch nicht – weder lokal noch über das Netzwerk.
To be continued…
Update:
Folgendes Setting in /etc/libvirt/libvirtd.conf von
[...]
# This is enabled by default, uncomment this to disable it
# listen_tls = 0
[...]
nach
[...]
# This is enabled by default, uncomment this to disable it
listen_tls = 0
[...]
ändern und schon kann man sich über das Netzwerk einloggen. So wie es aussieht ist das unter Gentoo standardmäßig aktiviert und führt somit zu Problemen bei dieser Verbindungsart. Laut der Infos in der betroffenen Konfigurationsdatei, muss vorher eine CA erstellt werden um diese standardtmäßig eingeschaltete Funktion nutzen zu können. Wie auch immer, der aktivierte Zustand clasht aus welchen Gründen auch immer mit dem ssh Zugang …
Ein lokaler Test würde beispielsweise so aussehen:
virsh -c "qemu+ssh://user@host/system"
In diesem Fall darf der verwendete Hostname nicht auf die localhost-IP 127.0.0.1 auflösen. Falls es dies tut, gibt es folgende Meldung:
eq6 ~ # virsh -c "qemu+ssh://admin@localhost/session"
Fehler: cannot recv data: Die Verbindung wurde vom Kommunikationspartner zurückgesetzt
Fehler: Verbindung zum Hypervisor scheiterte
Der lokale Zugang wird mit
virsh -c "qemu:///system"
durchgeführt.
Sollte man den SSH Port verändert haben, lässt sich dieser, wie in folgendem Beispiel zu sehen, mit angeben:
virsh -c "qemu+ssh://user@host:port/session"
Da sich root per ssh nicht einloggen darf und es auch sonst eine schlechte Idee ist, libvirt mit root zu administrieren, ändern wir noch folgendes in der Datei /etc/libvirt/libvirtd.conf
# UNIX socket access controls
#
# Set the UNIX domain socket group ownership. This can be used to
# allow a 'trusted' set of users access to management capabilities
# without becoming root.
#
# This is restricted to 'root' by default.
#unix_sock_group = "users"
#
# Set the UNIX socket permissions for the R/O socket. This is used
# for monitoring VM status only
#
# Default allows any user. If setting group ownership may want to
# restrict this to:
unix_sock_ro_perms = "0777"
#
# Set the UNIX socket permissions for the R/W socket. This is used
# for full management of VMs
#
# Default allows only root. If PolicyKit is enabled on the socket,
# the default will change to allow everyone (eg, 0777)
#
# If not using PolicyKit and setting group ownership for access
# control then you may want to relax this to:
unix_sock_rw_perms = "0770"
#
# Set the name of the directory in which sockets will be found/created.
unix_sock_dir = "/var/run/libvirt"
#
########################################################################
Ach ja, der SSH-Zugang sollte mittels Zertifikat gelöst werden. Warum kann man sich selber denken bzw. wird es merken…
Weiterführende Infos im Wiki: