我最近已更新至juju2.0-beta11
在 Ubuntu 16.04 上运行。
我之前使用过之前的版本,效果不错,但几天前升级后就出现了问题。现在,当我尝试在控制器上运行有关该模型的任何命令时,命令行都会挂起。如果我运行某个--debug
选项,我会收到一条关于 LXD 上权限被拒绝的消息,并怀疑我是否属于 lxd 组:
2016-07-04 12:51:53 DEBUG juju.juju api.go:143 failed to connect via bootstrap config: constructing environ: invalid config: can't connect to the local LXD server: Permission denied, are you in the lxd group?
Please configure LXD by running:
$ newgrp lxd
$ lxd init
如果我运行,groups
我可以看到我已经在 lxd 组中
infinityplusb@mypc:~$ groups
lxd adm cdrom sudo ...
如果我尝试销毁控制器,我将无法创建新控制器,这都是由于 lxd 权限的相同问题。我该如何 a) 修复权限和/或 b) 删除现有控制器/模型,以便我可以重新开始工作。:)
答案1
虽然这实际上不是一个答案,但我的解决方法是直接使用 lxc,并删除所有正在运行的实例。然后删除 lxd,清理它,重新启动并重新安装它。
lxc list
然后对列表中的每个指纹运行
lxc image delete FINGERPRINT
一旦所有正在运行的 lxc 实例被删除
sudo apt-get remove –purge lxd
sudo rm -r /var/lib/lxd /var/log/lxd
重启。然后,
sudo apt install lxd
虽然不是一个很好的解决方案,但对我来说还是有用的。
答案2
尝试确保 /var/lib/lxd/unix.socket 归 lxd 组所有。在最近安装的 lxd 中,它最终归 root 所有,尽管启动 juju 的用户属于 lxd 组,但由于 unix.socket 归 root 所有,因此它失败并显示您看到的消息。