python - 使用 pyvmomi 模块从 .vmx 和 .vmdk 文件创建虚拟机

标签 python vmware pyvmomi

我一直在尝试使用 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/

相关文章:

python - Py2App 找不到标准模块

python - 使用 RTLD_NOW 的 dlopen 导致崩溃

python - 使用 python 从 10 到 N 的步数

perl - 如何使用 XML::LibXML 实际修改 XML 文件的值

c - 使用 Vix 发送到虚拟机的命令序列有时会失败

python - pyvmomi 获取 RAM/CPU 使用情况 VSphere SDK 5.5?

python - 从 C++ 读取 npy 文件

linux - Android 模拟器阻止 VMware Linux 主机上的声音

python - 如何使用 vmware pyvmomi 获取虚拟机的 ipstack?