如何在 Ubuntu 12.04 中配置和使用 qemu-guest-agent?我的主要目的是从主机获取客户虚拟机的 IP 地址

如何在 Ubuntu 12.04 中配置和使用 qemu-guest-agent?我的主要目的是从主机获取客户虚拟机的 IP 地址

文档中没有明确说明如何在 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

  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
    
  2. 将以下内容添加到 /etc/apparmor.d/abstractions/libvirt-qemu 的底部:

    /var/lib/libvirt/qemu/channel/target/* rw,
    
  3. 在客户虚拟机中安装 qemu-guest-agent。

    sudo apt-get install qemu-guest-agent
    
  4. virsh 编辑 VMNAME 并在设备中添加以下行:

    <channel type="unix">
      <source mode="bind"/>
      <target type="virtio" name="org.qemu.guest_agent.0"/>
    </channel>
    
  5. 关闭并启动虚拟机,然后执行以下命令获取 IP 地址。使用 guest-agent 还可以做很多其他事情。

    virsh qemu-agent-command VMNAME '{"execute":"guest-network-get-interfaces"}'
    

参考:http://wiki.stoney-cloud.org/wiki/Qemu_Guest_Agent_Integration

相关内容