В моей текущей рабочей деятельности меня часто спрашивают о том, как использовать PowerCLI для выполнения ряда задач в кластере vCenter. В этом посте я поделюсь тем, как я научился импортировать файл OVF в VMware.

Это история о недавней просьбе о помощи от коллеги, который должен был экспортировать шаблон пользовательского средства мониторинга в новый кластер vCenter, который строился. У моего коллеги были временные ограничения, и у него не было необходимого доступа к шаблону.
Если у вас его еще нет, обязательно загрузите модуль PowerCLI с помощью Install-Module -Name PowerCLI
Подключение к vCenter
Никогда не упуская возможности использовать PowerShell или PowerCLI, я бросился на помощь. Я собрал необходимую информацию у коллеги и начал подключаться к кластеру:
Это занимает всего лишь мгновение. После подключения вам нужно знать, какие глаголы использовать. Вы можете сделать это, используя командлет Get-Command -Module PowerCLI
.
Есть два командлета, которые выделяются:
Export-VApp
Import-VApp
Оба эти командлета, кажется, именно то, что вам нужно. Но сначала, так как это для меня и, возможно, для вас, урок, я немного освоюсь в правильном использовании каждого из них.
Экспорт виртуальных машин в файл OVF
Export-VApp
cmdlet экспортирует выключенную виртуальную машину в формат OVF в текущий каталог вашей сессии по умолчанию, если вы не указываете путь.
I already have a path in mind so I’m going to be using the C:\Exported-OVF directory but yours may vary. Knowing this, you can then run Export-VApp
against the VM template specifying the destination folder.
Но есть проблема. Вы не можете экспортировать работающую виртуальную машину в формат OVF. Но не волнуйтесь, это легко исправить. Измените свой код немного и обязательно сначала выключите виртуальную машину с помощью cmdlet Shutdown-VMGuest
.
Теперь, когда шаблонное устройство выключено, продолжите выполнение cmdlet Export-VApp
, которое было предпринято ранее. Этот процесс займет несколько минут, и это было небольшое устройство для начала.
По завершении у вас должно быть готовое устройство для развертывания в другой среде vCenter. Или нет?
Импорт файлов OVF
Теперь у вас должен быть файл на вашем локальном файловом сервере. Можно его импортировать. Для этого вам нужно запросить хранилище данных для его импорта вместе с хостом виртуальной машины. Затем вы можете использовать оба объекта для передачи cmdlet Import-Vapp
для его импорта.
Но подождите! Это не работает. В моем случае это не удалось, потому что я не заметил, что я фактически подключался к другому кластеру vCenter.
Что-то случилось, когда я начал импортировать ранее экспортированное устройство виртуальной машины. Множество красных сообщений об ошибке.
I read the error message, and sure enough, the host is not a part of a vCenter cluster and therefore does not have proper licensing to complete the import using PowerCLI. This is a limitation that VMware enforces.
Не волнуйтесь, я все равно смог подключиться к веб-интерфейсу хоста и вручную импортировать, используя интерфейс HTML5. Мастер проведет вас через каждый шаг, даст имя импортированному устройству, выберет OVF, хранилище данных, тип развертывания (толстый или тонкий), и проверит конфигурацию. Затем выберите Finish, и начнется импорт.
Предыдущая попытка импорта отлично сработала бы с кластером vCenter, но в данной ситуации просто не сработала. Это заняло немного больше времени, чем ожидалось, но было прямолинейным. Вы можете прочитать больше о процессе здесь.
В конце концов импорт был успешным, и мой коллега справился со своим сроком.
Резюме
До этого упражнения я не знал, что не все командлеты PowerCLI доступны во всех ситуациях. Однако мы оба освоили новый навык и, хотя столкнулись с некоторыми непредвиденными трудностями, мы все же выполнили поставленную задачу.
Слишком часто мы спешим через ИТ-проекты, ища “быстрое” решение. Следите за скоростью, уделите еще минуту или две, чтобы задать вопросы, отойти в сторону и понять проблему, которую вы пытаетесь решить. Может быть, вы обнаружите, что узнали что-то новое.