安装后立即使用 libvirt 和 qemu://system

安装后立即使用 libvirt 和 qemu://system

在由该问题引发的讨论中通过 ssh 连接到 libvirt我们讨论了在安装 libvirt* 软件包后立即使用 libvirt 的通常默认设置 qemu://session,因为有一些障碍需要克服 - 但只要您重新登录,这些障碍就不存在了。

将会发生的事情如下:

$ apt install libvirt-daemon-system
$ virsh list
error: failed to connect to the hypervisor
error: Failed to connect socket to '/var/run/libvirt/libvirt-sock': 
Permission denied

但实际上,更危险的是,它工作正常,但后来您却错过了您的客户。这是因为安装后的默认设置来自二进制文件,即 qemu:///session(在较新的版本中,这一点已更改)。

$ apt 安装 libvirt-daemon-system $ virsh uri qemu:///session

答案1

出现上述问题的原因是安装后当前 shell(或脚本)中缺少两样东西。

  1. 您没有 libvirt 组的成员资格。该成员资格会自动添加到 wheel(可以运行 sudo)组的所有成员,但直到您再次登录后才会生效,以便您选择该组
  2. 默认 URI 可以改变(例如上游),Ubuntu 选择让用户保持原样,通过导出“LIBVIRT_DEFAULT_URI=qemu:///system”,但这是在“/etc/profile.d/libvirt-uri.sh”的 profile.d 元素中完成的,并且只能在新登录时获取。

曾讨论过将用户登录作为软件包安装时间,但最终放弃了,因为对于幸运的是属于极端情况的某些事情来说,这样做可能会造成太多破坏。但是,如果你想在一个脚本中安装并使用它,你需要进行一些小的调整才能做到这一点。

export LIBVIRT_DEFAULT_URI=qemu:///system
sg libvirt -c virsh <...>

感谢@marosg 对此的讨论!

相关内容