Я установил virt-manager
и я не могу заставить его работать.
Я попробовал некоторые ранее отправленные ответы без успеха. Я проверил что:
libvirt-bin
пакет установленlibvirtd
демон был запущенlibvirtd
группаlibvirt
URI: qemu:///system
Это - ошибка, которую я получаю при попытке работать virt-manager
:
Traceback (most recent call last):
File "/usr/share/virt-manager/virtManager/connection.py", line 1027, in _open_thread
self.vmm = self._try_open()
File "/usr/share/virt-manager/virtManager/connection.py", line 1009, in _try_open
flags)
File "/usr/lib/python2.7/dist-packages/libvirt.py", line 102, in openAuth
if ret is None:raise libvirtError('virConnectOpenAuth() failed')
libvirtError: Failed to connect socket to '/var/run/libvirt/libvirt-sock': Permission denied
У меня была такая же проблема. Попробуйте это руководство , оно работает для меня. Не забудьте перезапустить после добавления пользователя в группу 'libvirtd'
Я столкнулся с этой проблемой, потому что у меня было две libvirtd
группы.
Когда я установил qemu-kvm, группа libvirtd
не существовала, поэтому она была создана с произвольным идентификатором группы 121:
ls -n /var/run/libvirt/libvirt-sock
srwxrwx--- 1 0 121 0 Oct 1 18:49 /var/run/libvirt/libvirt-sock
Позже мой хост присоединился к NIS. Я являюсь членом libvirtd
, но идентификатор группы 1046:
id
uid=177(jmcgeheeiv) ...,1046(libvirtd),...
Я не являюсь членом группы 201, поэтому я не могу записать в сокет /var/run/libvirt/libvirt-sock
.
Обновление принадлежности группы /var/run/libvirt/libvirt-sock
к правильному номеру группы решило мою проблему:
sudo chgrp 1019 /var/run/libvirt/libvirt-sock
ls -n /var/run/libvirt/libvirt-sock
srwxrwx--- 1 0 1019 0 Oct 1 18:49 /var/run/libvirt/libvirt-sock
В этом случае нет необходимости выходить из системы и входить в нее.
Хотя вышеизложенное решает непосредственную проблему, оно нарушает инфраструктуру как код. Реальное решение состоит в том, чтобы восстановить хост, сначала создав группу libvirtd
с идентификатором группы 1046 в соответствии с NIS, а затем установив qemu-kvm.
Возможно, вам придется выйти и снова войти в систему.
Предполагается, что /etc/libvirt/libvirtd.conf
имеет:
# 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 = "libvirtd"
# 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, you may want to
# restrict this too.
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 too.
unix_sock_rw_perms = "0770"
Должно работать, если ваш пользователь является членом группы libvirtd
.
Проверьте, должен ли ваш пользователь быть в группе, пример пользователя vagrant
:
$ cat /etc/group|grep $USER
vagrant:x:1000:
libvirtd:x:116:ubuntu,vagrant
Если вашего пользователя нет в группе, вам нужно добавить его:
$ sudo usermod -a -G libvirtd $USER
Если ваш пользователь уже был в группе в /etc/group
, проверьте вывод groups
:
$ groups
vagrant libvirtd
Если вы не видите libvirtd
, вам нужно выйти и снова войти в систему.
Попробуйте добавить эту строку в /etc/libvirt/libvirtd.conf
listen_tls = 0
, затем перезапустите lirvirt
с помощью:
/etc/init.d/libvirt-bin restart