3

我试图找到一个代码支持在python数据中心的文件夹之间移动机器但没有成功,我看到pysphere你可以在克隆阶段定义文件夹,而不是在机器已经克隆之后。

似乎是我的问题的解决方案,但它在 powershell 中,有人知道在 python 中对它的包装支持吗

4

1 回答 1

2

你可以用 pyVmomi 做到这一点。我会避免使用 pysphere,因为 pyVmomi 由 VMWare 维护,并且 pysphere 在 4 年或更长时间内没有更新。

这就是说这里是一些使用 pyVmomi 的示例代码

service_instance = connect.SmartConnect(host=args.host,
                                        user=args.user,
                                        pwd=args.password,
                                        port=int(args.port))

search_index = service_instance.content.searchIndex
folder = search_index.FindByInventoryPath("LivingRoom/vm/new_folder")
vm_to_move = search_index.FindByInventoryPath("LivingRoom/vm/test-vm")
move_task = folder.MoveInto([vm_to_move])

在此示例中,我ServiceInstance通过连接到 vCenter 创建一个,接下来我获取一个SearchIndex. 有SearchIndex几种方法可用于定位您的托管对象。在此示例中,我决定使用该FindByInventoryPath方法,但您可以使用任何适合您的方法。首先,我找到我想要移入的Folder命名实例。接下来我找到我要移动的。最后,我执行将为我移动虚拟机的操作。该任务采用要移动到文件夹中的对象列表的参数,在这种情况下,它是一个项目列表,仅包含我要移动的一个 vm。如果需要,您可以从这里监控任务。new_folderVirtualMachineVirtualMachineTask

请记住,如果您使用FindByInventoryPathGUI 中不可见的许多隐藏文件夹。我发现使用ManagedObjectBrowser有时非常有帮助。

有用的文档链接:

于 2017-01-31T23:11:54.100 回答