Нужен интерфейс Python для перемещения машины в другую папку
Я пытаюсь найти поддержку кода в python
для перемещения машины между папками Datacenter, я видел в pysphere
что вы можете определить папку только на этапе клонирования, а не после того, как машина уже клонирована.
Это похоже на решение моей проблемы, но это в 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])
В этом примере я создаю ServiceInstance
подключив к vCenter, затем я беру экземпляр SearchIndex
, SearchIndex
имеет несколько методов, которые можно использовать для поиска ваших управляемых объектов. В этом примере я решил использовать FindByInventoryPath
метод, но вы можете использовать любой, который будет работать для вас. Сначала я нахожу экземпляр Folder
названный new_folder
что я хочу переместить VirtualMachine
в. Затем я нахожу VirtualMachine
Я хочу переехать. Наконец я выполняю Task
это переместит VM для меня. Эта задача принимает параметр списка объектов, которые нужно переместить в папку, и в этом случае это один список элементов, содержащий только одну виртуальную машину, которую я хочу переместить. Отсюда вы можете контролировать задачу, если хотите.
Имейте в виду, что если вы используете FindByInventoryPath
Есть много скрытых папок, которые не видны из графического интерфейса. Я считаю, что использование ManagedObjectBrowser иногда очень полезно.
Полезные ссылки на документы: