我一直在尝试使用 pyvmomi 模块在 Python 中使用来自 ESX 主机的现有虚拟机的 .vmx 和 .vmdk 文件来创建新虚拟机。 我是 pyvmomi 的新手,并且没有太多可用于 pyvmomi 的在线帮助。我已经检查了 github( https://github.com/vmware/pyvmomi-community-samples/tree/298bf74446f3fcc5743d6435763ff6dc16ab4cbc/samples )中的示例代码,但没有找到相关内容。 请给我指点。
最佳答案
假设 Virtualachine 名称是:1001-web1.myhost.com
那么您要放置的主机系统是:host1.myesxhost.com
主机有一个名为:Local1的数据存储
主机位于名为:Prod的文件夹中
您需要将文件从 VM 获取到 Local1 数据存储中。我会让你弄清楚那部分。它们需要放入名为:1001-web1.myhost.com
的文件夹中接下来,您需要在 list 中找到文件夹 Prod 和主机系统 host1.myesxhost.com,以便获得它们的 ManagedObjectRef。您可以使用 searchIndex.FindByDnsName 查找主机,并使用 searchIndex.FindByInventoryPath 查找文件夹(或其他一些方法..)
找到文件夹Prod后,您可以使用RegisterVM_Task注册虚拟机。
si = connect.SmartConnect(xxx)
host = si.content.searchIndex.FindByDnsName(None,"host1.myesxhost.com", False)
folder = si.content.searchIndex.FindByInventoryPath(xxx)
task = folder.RegisterVM_Task(path="[Local1] 1001-web1.myhost.com/1001-web1.myhost.com.vmx", name="new vm name", asTemplate=False, pool=None, host=host)
从这里您应该能够监视任务的进程,一旦任务成功完成,task.info.result 将包含新虚拟机的更多信息。
这是伪代码,因此语法可能不正确,但这是您必须遵循的过程。
关于python - 使用 pyvmomi 模块从 .vmx 和 .vmdk 文件创建虚拟机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29213289/