我想在python
中找到代碼支持,以便在數據中心文件夾之間移動一臺機器而沒有成功,我在pysphere
中看到,您可以只在克隆階段定義文件夾,而不是機器已經克隆後。需要Python界面將機器移動到另一個文件夾
This似乎對我的問題的解決方案,但它是在PowerShell中,也有人知道在Python
我想在python
中找到代碼支持,以便在數據中心文件夾之間移動一臺機器而沒有成功,我在pysphere
中看到,您可以只在克隆階段定義文件夾,而不是機器已經克隆後。需要Python界面將機器移動到另一個文件夾
This似乎對我的問題的解決方案,但它是在PowerShell中,也有人知道在Python
它的包裝支持您可以用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
方法,但你可以使用任何適合你的方法。首先,我找到名爲new_folder
的Folder
的實例,我想將其移動到VirtualMachine
。接下來我找到我想要移動的VirtualMachine
。最後,我執行Task
,它將會爲我移動虛擬機。該任務需要將對象列表的參數移動到文件夾中,在這種情況下,其單個項目列表只包含要移動的一個虛擬機。從這裏你可以監控任務,如果你想。
請記住,如果您使用FindByInventoryPath
,有許多隱藏的文件夾在GUI中不可見。我發現使用ManagedObjectBrowser有時非常有用。
有用的文檔鏈接:
這是非常有用的,謝謝!爲了澄清其他人的發現,上例中的LivingRoom是您數據中心的名稱。 – Rekovni