一定有一种方法可以做到这一点,而我却不知道。我正尝试从 CLI 同时修改一大堆虚拟机上的属性:
看! 24台虚拟机:
$ vmware-cmd --server 10.91.1.1 --username root --password vmware -h 10.91.1.3 -l
/vmfs/volumes/volumes/V-RHEL-01/V-RHEL-01.vmx
/vmfs/volumes/volumes/V-RHEL-02/V-RHEL-02.vmx
/vmfs/volumes/volumes/V-RHEL-03/V-RHEL-03.vmx
…
/vmfs/volumes/volumes/V-RHEL-24/V-RHEL-24.vmx
让我们尝试修改它们:
$ for i in `seq -w 1 24`; do
CFG="/vmfs/volumes/volumes/V-RHEL-$i/V-RHEL-$i.vmx"
echo $CFG
vmware-cmd --server 10.91.1.1 --username root --password vmware -h 10.91.1.3 "$CFG" setguestinfo memsize 8192
vmware-cmd --server 10.91.1.1 --username root --password vmware -h 10.91.1.3 "$CFG" setguestinfo sched.mem.min 2048
done
结果是:
/vmfs/volumes/volumes/V-RHEL-01/V-RHEL-01.vmx
No virtual machine found.
No virtual machine found.
/vmfs/volumes/volumes/V-RHEL-02/V-RHEL-02.vmx
No virtual machine found.
No virtual machine found.
/vmfs/volumes/volumes/V-RHEL-03/V-RHEL-03.vmx
No virtual machine found.
No virtual machine found.
…
我正在运行 VMware-vSphere-CLI-5.1.0-780721 和 ESXi 5.1。
答案1
显然,当该工具显示配置时,它使用旧的路径样式格式。但是当它接受它们时,它使用数据存储引用:
$ for i in `seq -w 1 24`; do
CFG="[nfshost1-data] V-RHEL-$i/V-RHEL-$i.vmx"
echo $CFG
vmware-cmd --server 10.91.1.1 --username root --password vmware -h 10.91.1.3 "$CFG" setguestinfo memsize 8192
vmware-cmd --server 10.91.1.1 --username root --password vmware -h 10.91.1.3 "$CFG" setguestinfo sched.mem.min 2048
done
[nfshost1-data] V-RHEL-01/V-RHEL-01.vmx
setguestinfo(memsize 8192) = 1
setguestinfo(sched.mem.min 2048) = 1
…
但实际上这不起作用!它似乎做出了改变,但实际上什么也没改变!