virsh: ユーザーとしてハイパーバイザーに接続できませんでした

virsh: ユーザーとしてハイパーバイザーに接続できませんでした

現在、RHEL 7.7 オペレーティング システムを実行しています。

kvm2 ドライバーを使用して minkube 環境をセットアップしようとしましたが、minikube は正常に起動しますが、起動中にいくつかのエラーが発生します。

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

'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

そこで調査を開始し、最初にコマンド ラインで virsh コマンドを実行しようとしましたが、同じエラーが発生しました。そこで次に試したのは、このコマンドを sudo で実行することで、この場合はうまくいきました。

したがって、これは権限の問題であるはずだと私は思いますが、それでもこの問題を解決できません (sudo を使用せずにユーザーとして minikube を起動したいです)。

これまで試したこと:

  1. グループ libvirt にユーザーを追加 - まだ失敗します
  2. グループにユーザーを追加します: kvmuser qemu および kvm - まだ失敗します
  3. libvirtd.conf ファイルを次の構成で更新しました。
unix_sock_group = "libvirt"
unix_sock_ro_perms = "0777"
unix_sock_rw_perms = "0770"
unix_sock_dir = "/var/run/libvirt"

  1. このコンテンツにすでに存在するポリシーキット ルールを確認しました。
polkit.addRule(function(action, subject) {
    if (action.id == "org.libvirt.unix.manage"
            && subject.local
            && subject.active
            && subject.isInGroup("wheel")) {
        return polkit.Result.YES;
    }
});

そこで、ホイールグループにユーザーを追加しようとしましたが、それでも同じ問題が起こります

  1. systemd-network にもユーザーを追加しました (ここではランダムなものから始めました lol :D) 同じ問題です。
  2. selinux を無効にしました - 同じ問題です。

あらゆる場所を検索しましたが、問題の解決策が見つかりません。誰か解決できた人はいませんか?

通常のユーザーとして vish コマンドを実行したいだけです。

答え1

それで、すべての苦労の末 (ちなみに、おそらくユーザーを適切なグループに追加することが正しい構成の一部でした)、ユーザーとして動作させるためにまだ 1 つ足りないものがありました。

どうやら、次の環境変数をエクスポートする必要があるようです:

export LIBVIRT_DEFAULT_URI=qemu:///system

その後エクスポートすると、ユーザーが libvirt の許可されたグループに属している場合は、すべてのコマンドが機能し始めます。

答え2

rhel libvirt対応のホストが手元にないのですが、fedora 31で以下の手順に従ってください。libvirt dbus ドキュメントページこれをホイール メンバー ユーザーとして実行できます。

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

libvirtd を再起動する必要があるかもしれません。

関連情報