2017-01-31 56 views
1

我想在python中找到代碼支持,以便在數據中心文件夾之間移動一臺機器而沒有成功,我在pysphere中看到,您可以只在克隆階段定義文件夾,而不是機器已經克隆後。需要Python界面將機器移動到另一個文件夾

This似乎對我的問題的解決方案,但它是在PowerShell中,也有人知道在Python

回答

1

它的包裝支持您可以用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_folderFolder的實例,我想將其移動到VirtualMachine。接下來我找到我想要移動的VirtualMachine。最後,我執行Task,它將會爲我移動虛擬機。該任務需要將對象列表的參數移動到文件夾中,在這種情況下,其單個項目列表只包含要移動的一個虛擬機。從這裏你可以監控任務,如果你想。

請記住,如果您使用FindByInventoryPath,有許多隱藏的文件夾在GUI中不可見。我發現使用ManagedObjectBrowser有時非常有用。

有用的文檔鏈接:

+0

這是非常有用的,謝謝!爲了澄清其他人的發現,上例中的LivingRoom是您數據中心的名稱。 – Rekovni

相關問題