我试图在python
中找到一个代码支持,用于在Datacenter的文件夹之间移动一台机器但没有成功,我在pysphere
中看到你可以在克隆阶段定义文件夹而不是在机器之后已经克隆了。
This似乎是我的问题的解决方案,但它在powershell中,有人知道在python中对它的包装支持
答案 0 :(得分: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])
在此示例中,我通过连接到vCenter创建ServiceInstance
,然后我抓取SearchIndex
的实例。 SearchIndex
有几种方法可用于查找托管对象。在这个例子中,我决定使用FindByInventoryPath
方法,但你可以使用任何适合你的方法。首先,我找到了Folder
名为new_folder
的实例,我想将VirtualMachine
移动到其中。接下来我找到了我要移动的VirtualMachine
。最后,我执行了Task
,它将为我移动vm。该任务需要移动到文件夹中的对象列表的参数,在这种情况下,它只包含我要移动的一个vm的单个项目列表。从这里,您可以根据需要监控任务。
请记住,如果您使用FindByInventoryPath
,则有许多隐藏文件夹在GUI中不可见。我发现使用ManagedObjectBrowser有时非常有帮助。
有用的文档链接: