web-dev-qa-db-ja.com

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コマンドを実行して同じ同一のエラーを取得しようとしたので、2番目に試みたのは、このコマンドをSudoで実行することで、この場合は機能しました。

だから私はそれが許可の問題である必要があると思います、しかし私はまだこの問題を解決することに失敗しています(私はSudoを使わずにユーザーとしてminikubeを起動したいです)。

私がこれまでに試したこと:

  1. ユーザーをグループlibvirtに追加する-それでも失敗する
  2. 私のユーザーをグループに追加します:kvmuser qemu and 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. このコンテンツにすでに存在するpolicykitルールを確認しました:
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
Ivan

したがって、すべての苦労の後(そしておそらくユーザーを適切なグループに追加することは、正しい構成の一部でした)、それでもユーザーとして機能させるために必要なことが1つありませんでした。

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

export LIBVIRT_DEFAULT_URI=qemu:///system

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

1
Ivan

私は便利な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の再起動が必要になる場合があります。

0
natxo asenjo