从guest虚拟机连接到libvirtd uri以在主机上运行virsh命令

时间:2017-03-27 09:10:57

标签: curl qemu kvm libvirt

是否可以从访客连接到主机管理程序(使用libvirt remote uri)? 从在线的各种文档中,我推断只能在本地(即从主机)连接到管理程序uri。这种理解是否正确? 有没有其他方法可以在guest虚拟机上触发主机上的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

2 个答案:

答案 0 :(得分:0)

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

有关详细信息,请参阅http://libvirt.org/uri.html

答案 1 :(得分:0)

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