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

A-B*_*A-B 5 libvirt qemu kvm-virtualization

在文档中不太清楚如何在 Ubuntu 12.04 中安装和使用 qemu-guest-agent。

任何人都可以帮助我吗?

http://wiki.libvirt.org/page/Qemu_guest_agent

它是在域内运行的守护程序,旨在帮助管理应用程序执行需要来宾操作系统帮助的功能。我想使用 guest-network-get-interfaces qemu-guest-agent 命令知道来宾 VM 的 IP 地址。

有没有其他方法可以找到来宾 VM 的 IP 地址?

arp -an, arpwatch ,echo syslog | grep $mac_address 在我的场景中没有用?

A-B*_*A-B 6

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

    /var/lib/libvirt/qemu/channel/target/* rw,
    
    Run Code Online (Sandbox Code Playgroud)
  3. 在来宾 VM 中安装 qemu-guest-agent。

    sudo apt-get install qemu-guest-agent
    
    Run Code Online (Sandbox Code Playgroud)
  4. virsh 编辑 VMNAME 并在设备中添加以下行:

    <channel type="unix">
      <source mode="bind"/>
      <target type="virtio" name="org.qemu.guest_agent.0"/>
    </channel>
    
    Run Code Online (Sandbox Code Playgroud)
  5. 关闭并启动虚拟机并执行以下命令以获取 IP 地址。还有许多其他事情可以使用来宾代理完成。

    virsh qemu-agent-command VMNAME '{"execute":"guest-network-get-interfaces"}'
    
    Run Code Online (Sandbox Code Playgroud)

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