从来宾连接到 libvirtd uri 到主机上的 运行 virsh 命令

Connecting to libvirtd uri from guest to run virsh commands on host

是否可以从来宾连接到主机管理程序(使用 libvirt 远程 uri)? 从各种在线文档中,我推断只能在本地(即从主机)连接到管理程序 uri。这种理解是否正确? 有没有其他方法可以从来宾触发主机上的 运行 virsh 命令?

在主机上:

    #virsh uri 
    qemu:///system 

    #virsh -c qemu:///system list
    Id    Name                           State
    ----------------------------------------------------
     4     guest_vm                    running

访客:

    # curl qemu://user1@192.168.10.1/system -vv
    * Protocol qemu not supported or disabled in libcurl
    * Closing connection -1
      curl: (1) Protocol qemu not supported or disabled in libcurl

这是可能的。该命令看起来像
virsh --connect qemu+ssh://user1@192.168.10.1/system

详情请参考http://libvirt.org/uri.html

Libvirt 不使用 HTTP/REST 协议,所以你在这里使用 'curl' 是关键问题。 Libvirt 使用私有二进制 RPC 协议,因此您必须始终使用基于 libvirt 的应用程序连接到 libvirtd。您的 URI 是正确的 - 您只需要将它提供给 virsh - 例如 'virsh -c qemu://user1@192.168.10.1/system'。 Libvirt 支持几种不同的连接方法——您使用的 URI 将通过 TLS 加密连接访问 libvirt——这需要您在主机上配置 libvirtd 以侦听 IP 地址,并为其提供 x509 证书。如果您想避免使用 TLS+x509,更简单的方法是使用带有 'qemu+ssh://.....' URI 的 SSH 隧道。有关远程访问 libvirtd 的信息,请参阅 http://libvirt.org/remote.html