デスクトップOSとしてUbuntuを使うとサーバとの連携がいろいろと楽でいいのですが、
まれにその連携がうまくいかないことがあります。
今回はユーザ権限で起動したvirt-managerでlibvirtdに接続ができなかったので
対応した内容をメモ書きで残しておきます。
0. 環境
OS:Ubuntu 12.10 Desktop
1. エラー内容
libvirt に接続できませんでした。
Verify that:
– The ‘libvirt-bin’ package is installed
– The ‘libvirtd’ daemon has been started
– You are member of the ‘libvirtd’ groupLibvirt URI is: qemu:///system
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: ソケットの ‘/var/run/libvirt/libvirt-sock’ への接続に失敗しました: 許可がありません
2. 対応内容
[email protected]:~# vi /etc/libvirt/libvirtd.conf
[email protected]:/etc/libvirt# diff libvirt.conf.def libvirtd.conf
88c88
< unix_sock_ro_perms = “0770”
—
> unix_sock_ro_perms = “0777”
98c98
< unix_sock_rw_perms = “0770”
—
> unix_sock_rw_perms = “0777”
101c101
< #unix_sock_dir = “/var/run/libvirt”
—
> unix_sock_dir = “/var/run/libvirt”[email protected]:~# service libvirt-bin stop
libvirt-bin stop/waiting
[email protected]:~#
[email protected]:~# service libvirt-bin start
libvirt-bin start/running, process 4368
[email protected]:~#
デフォルトではソケットファイルが作られないので、
ソケットファイルを生成しつつotherに権限を与えてあげれば良いかと。
ただ、otherに権限与えるのがあまり好ましくない環境ではおすすめしません。
よくよく考えるとlibvirtdグループに実行ユーザ加えてあげればいいような・・・