文档中没有明确说明如何在 Ubuntu 12.04 中安装和使用 qemu-guest-agent。
那么有人能帮助我吗?
http://wiki.libvirt.org/page/Qemu_guest_agent
它是在域内运行的一个守护程序,旨在帮助管理应用程序执行需要客户操作系统协助的功能。我想使用 guest-network-get-interfaces qemu-guest-agent 命令了解客户虚拟机的 IP 地址。
还有其他方法可以找到客户虚拟机的 IP 地址吗?
arp -an, arpwatch,echo syslog | grep $mac_address 在我的场景中没有用?
答案1
首先在主机系统上安装最新版本的 libvirt-bin(>=1.0.0)。在 Ubuntu12.04 上安装 libvirt-bin(>=1.0.0) 本身就是一项挑战,因为存在依赖关系。此链接可能有助于完成此操作: https://tad-do.net/2013/02/22/testing-new-libvirt-features-on-ubuntu-12-04/
然后在主机上执行以下命令:
mkdir -p /var/lib/libvirt/qemu/channel/target chown -R libvirt-qemu:kvm /var/lib/libvirt/qemu/channel
将以下内容添加到 /etc/apparmor.d/abstractions/libvirt-qemu 的底部:
/var/lib/libvirt/qemu/channel/target/* rw,
在客户虚拟机中安装 qemu-guest-agent。
sudo apt-get install qemu-guest-agent
virsh 编辑 VMNAME 并在设备中添加以下行:
<channel type="unix"> <source mode="bind"/> <target type="virtio" name="org.qemu.guest_agent.0"/> </channel>
关闭并启动虚拟机,然后执行以下命令获取 IP 地址。使用 guest-agent 还可以做很多其他事情。
virsh qemu-agent-command VMNAME '{"execute":"guest-network-get-interfaces"}'
参考:http://wiki.stoney-cloud.org/wiki/Qemu_Guest_Agent_Integration