我已经部署了大量 qemu/KVM VM,通过 libvirt 进行管理。它们都是 CentOS 5 或 6 主机和客户机(内核缺少 9p 文件系统标志,因此“挂载”共享文件系统不起作用)。
我想将任意字符串(或一个或多个键/值对,或一个文件,如果这最简单)从主机传递到客户机。
要求:1) 不要改变网络设置(即主机上没有主机/客户本地网络和 NFS)2) 不需要客户机上的新/自定义内核 3) 理想情况下,我们可以通过 libvirt 来执行某些操作。但这看起来不太可能,所以这不是必需的
有什么想法吗?我找不到太多与以下之一不符的内容:1) libvirt XML 中的“挂载”文件系统内容(正如我所说,CentOS 缺少 9p 内核标志,因此这是行不通的)2) 主机上的 NFS 导出(除非我添加私有网络,否则这根本没用,但我做不到)3) 将 smbios 序列号设置为... 任何任意字符串的丑陋黑客。
答案1
常见的做法是使用包含配置文件的附加 VFD 或 iso 来启动虚拟机。
...或者停止胡闹并安装 puppet/chef/spacewalk/saltstack 等。
...或者开始编码并编写一个自定义 VM 代理,该代理将通过 hypercall 设备与主机交互。据我所知,有一些计划允许通过 qemu-ga 进行此类通信,但我认为尚未实现。