我正在开发一个项目,我正在使用 RbVmomi 克隆 VM,克隆完成后我想重新配置 VM。
克隆效果很好,但是当我想更改 VM 的磁盘大小时遇到了一些问题。我可以更改 CPU 的数量和内存的大小,但是当我尝试更改磁盘大小时,我得到了错误:
RbVmomi::Fault (InvalidDeviceSpec: Invalid configuration for device '0'.):
代码:
if json.has_key?('CPU_COUNT') && json.has_key?('RAM')
vm_cfg = {
:numCPUs => json['CPU_COUNT'],
:memoryMB => json['RAM'],
:deviceChange => [
:operation => :edit, #also tried with :add
:fileOperation => :create,
:device => RbVmomi::VIM.VirtualDisk(
:key => 0,
:backing => RbVmomi::VIM.VirtualDiskFlatVer2BackingInfo(
:fileName => '[datastore]',
:diskMode => :persistent,
:thinProvisioned => true
),
:controllerKey => 1000,
:unitNumber => 0,
:capacityInKB => json['DISK_SIZE'] * 1024 * 1024
)
]
}
dc.find_vm(vmID).ReconfigVM_Task(:spec => vm_cfg).wait_for_completion