virsh: Verbindung zum Hypervisor als Benutzer fehlgeschlagen

virsh: Verbindung zum Hypervisor als Benutzer fehlgeschlagen

Ich verwende derzeit ein RHEL 7.7-Betriebssystem.

Ich habe versucht, eine Minkube-Umgebung mit dem KVM2-Treiber einzurichten. Dabei ist passiert, dass Minikube zwar gut startet, aber beim Start einige Fehler auftreten.

Der Fehler ist der folgende:

'kvm2' driver reported an issue: /bin/virsh domcapabilities --virttype kvm failed:
error: failed to connect to the hypervisor
error: Cannot recv data: Connection reset by peer

Ich begann also mit der Untersuchung und versuchte als Erstes, den Befehl virsh auf der Befehlszeile auszuführen, erhielt jedoch denselben Fehler. Als Zweites versuchte ich, diesen Befehl mit sudo auszuführen, und in diesem Fall funktionierte es.

Ich denke also, dass es ein Berechtigungsproblem sein muss, aber ich kann dieses Problem immer noch nicht lösen (ich möchte Minikube als Benutzer starten, ohne sudo verwenden zu müssen).

Was ich bisher versucht habe:

  1. Meinen Benutzer zur Gruppe libvirt hinzufügen – schlägt immer noch fehl
  2. Meinen Benutzer zu den Gruppen hinzufügen: kvmuser qemu und kvm - Immer noch fehlgeschlagen
  3. Die Datei libvirtd.conf wurde mit der folgenden Konfiguration aktualisiert:
unix_sock_group = "libvirt"
unix_sock_ro_perms = "0777"
unix_sock_rw_perms = "0770"
unix_sock_dir = "/var/run/libvirt"

  1. Habe die Policykit-Regel geprüft, die bereits mit diesem Inhalt vorhanden war:
polkit.addRule(function(action, subject) {
    if (action.id == "org.libvirt.unix.manage"
            && subject.local
            && subject.active
            && subject.isInGroup("wheel")) {
        return polkit.Result.YES;
    }
});

Also habe ich versucht, meinen Benutzer zur Wheel-Gruppe hinzuzufügen, immer noch dasselbe Problem

  1. Habe meinen Benutzer auch im Systemd-Netzwerk hinzugefügt (hier habe ich nur mit zufälligen Sachen angefangen, lol :D), gleiches Problem.
  2. Selinux deaktiviert – gleiches Problem.

Ich habe also überall gesucht und kann die Lösung für mein Problem nicht finden. Hat vielleicht jemand die Lösung gefunden?

Ich möchte den Vish-Befehl einfach als normaler Benutzer ausführen.

Antwort1

Nach all dem Ärger (und übrigens war das Hinzufügen des Benutzers zu den richtigen Gruppen wahrscheinlich Teil der richtigen Konfiguration) fehlte mir immer noch eine Sache, damit es als Benutzer funktioniert.

Offenbar muss die folgende Umgebungsvariable exportiert werden:

export LIBVIRT_DEFAULT_URI=qemu:///system

Wenn sich der Benutzer nach diesem Export in einer für libvirt zugelassenen Gruppe befindet, beginnen alle Befehle zu funktionieren.

Antwort2

Ich habe keinen Rhel Libvirt-fähigen Host zur Hand, aber mit einem Fedora 31 folgen Sie den Anweisungen aufdie libvirt dbus-DokumentationsseiteIch kann das als Wheel-Mitgliedsbenutzer ausführen:

$ cat /etc/dbus-1/system.d/org.libvirt.conf 
<?xml version="1.0"?>
<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">

<busconfig>

  <policy group="wheel">
    <allow send_destination="org.libvirt"/>
  </policy>

</busconfig>

$ id
uid=1000(natxo) gid=1000(natxo) groups=1000(natxo),10(wheel) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
$ virsh domcapabilities --virttype kvm
<domainCapabilities>
  <path>/usr/bin/qemu-system-x86_64</path>
  <domain>kvm</domain>
  <machine>pc-i440fx-4.1</machine>
  <arch>x86_64</arch>
  <vcpu max='255'/>
  <iothreads supported='yes'/>
  <os supported='yes'>
    <enum name='firmware'>
      <value>efi</value>
    </enum>
...

Möglicherweise müssen Sie libvirtd neu starten.

verwandte Informationen