从来宾连接到 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
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
是否可以从来宾连接到主机管理程序(使用 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
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