在 XenServer 上,有没有办法使用 Linux(CentOS 5.8)从 VM 内部读取 VM 元数据(自定义字段、标签、VM 名称)?
基本上我想做的是:
使用创建新的虚拟机
xe vm-install 模板=MYTEMPLATE 新名称标签=MYVM
读取元数据来配置虚拟机主机名、IP 地址等
在 EC2 上,您可以在启动新 VM 时传递包含脚本的用户数据文件。VM 启动后,脚本就会执行。类似于:
ec2-run-instances --key KEYPAIR --user-data-file CONFIGURE-SCRIPT ami-bf5eb9d6
我可以使用“启动选项”中的“操作系统启动参数”将一些信息传递给虚拟机
# cat /proc/cmdline
ro root=/dev/vg0/root console=xvc0 CUSTOMTEXT
在我看来,这不太优雅,可能会干扰一些真正的 Linux 启动参数。另一个问题是,每次启动时,CUSTOMTEXT 都会继续传递给 VM。
我只需要一种方法来在创建虚拟机期间传递几个参数并运行在首次启动时使用这些参数的脚本。
有任何想法吗 ?
干杯
古斯塔沃
答案1
在 Google 上搜索一番后,这个问题的答案是 XenStore (http://wiki.xen.org/wiki/XenStore)
要从 Linux 获取虚拟机名称 (domU),请运行:
xenstore-ls /local/domain/`xenstore-read domid`
包含有用解决方案的附加链接:
http://forums.citrix.com/thread.jspa?threadID=264531
http://old-list-archives.xen.org/archives/html/xen-users/2010-11/msg00179.html
https://wiki.openstack.org/wiki/GuestAgentXenStoreCommunication