使用 VMware ovftool 检查虚拟机(VM)的存在?

使用 VMware ovftool 检查虚拟机(VM)的存在?

使用 VMwareovftool查询虚拟机是否存在的规范方法是什么?

如果我运行这个命令:

ovftool vi://username@password@myvsphere/mydatacenter/vm/myvm

我可能会收到这样的回复:

Error: Got fault from server: The attempted operation cannot be
performed in the current state (Powered on).
Error: Fault cause: vim.fault.InvalidState

我知道我可以执行以下操作,然后寻找“定位器未引用对象”但是否有不同的命令或(一套)我可以运行选项,它将返回一个简单truefalse其他简洁的内容,并不表示错误?

ovftool vi://username@password@myvsphere/mydatacenter/vm/avmthatisnothere

仅供参考,以上返回的是:

Error: Locator does not refer to an object:
vi://username@password@myvsphere/mydatacenter/vm/avmthatisnothere

答案1

您无法在虚拟机运行时请求对虚拟机进行操作,但您的输出也表明您查询的虚拟机确实存在。因此,如果您获得类似以下内容的输出:

Error: Got fault from server: The attempted operation cannot be performed in the current state (Powered on).
Error: Fault cause: vim.fault.InvalidState

VM 确实存在并且处于开启状态。

如果你得到类似的信息

Error: Locator does not refer to an object: vi://...

该对象/VM 不存在。

我无法测试虚拟机存在但已关闭的情况,但我相信您将获得有关托管虚拟机的数据存储的信息等。

不幸的是,这里没有简单的 true/false 命令。您可以将其包装在脚本中,但您必须解析命令的输出(stdout 和 stderr)才能做出决策。

答案2

你用错了工具。你不能用叉子盛啤酒。

VMware OVF Tool 是一个命令行实用程序,允许您从许多 VMware 产品导入和导出 OVF 包。

要检查具有该名称的虚拟机是否myVM存在,您应该尝试 PowerCLI:

Get-VM -Name myVM

https://developer.vmware.com/docs/powercli/latest/vmware.vimautomation.core/commands/get-vm/#Default

相关内容