Импорт и Экспорт файлов OVF: Перемещение виртуальных машин между хостами

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

OVF File

Это история о недавней просьбе о помощи от коллеги, который должен был экспортировать шаблон пользовательского средства мониторинга в новый кластер vCenter, который строился. У моего коллеги были временные ограничения, и у него не было необходимого доступа к шаблону.

Если у вас его еще нет, обязательно загрузите модуль PowerCLI с помощью Install-Module -Name PowerCLI

Подключение к vCenter

Никогда не упуская возможности использовать PowerShell или PowerCLI, я бросился на помощь. Я собрал необходимую информацию у коллеги и начал подключаться к кластеру:

PS6> Connect-VIServer -Server vcenter.mydomain.local -Credential (Get-Credential)

Это занимает всего лишь мгновение. После подключения вам нужно знать, какие глаголы использовать. Вы можете сделать это, используя командлет 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.

PS6> Export-VApp -VM 'My_VM_Template' -Destination 'C:\Exported-OVF\'

Но есть проблема. Вы не можете экспортировать работающую виртуальную машину в формат OVF. Но не волнуйтесь, это легко исправить. Измените свой код немного и обязательно сначала выключите виртуальную машину с помощью cmdlet Shutdown-VMGuest.

PS6> Shutdown-VMGuest -VM 'My_VM_Template'

Теперь, когда шаблонное устройство выключено, продолжите выполнение cmdlet Export-VApp, которое было предпринято ранее. Этот процесс займет несколько минут, и это было небольшое устройство для начала.

По завершении у вас должно быть готовое устройство для развертывания в другой среде vCenter. Или нет?

Импорт файлов OVF

Теперь у вас должен быть файл на вашем локальном файловом сервере. Можно его импортировать. Для этого вам нужно запросить хранилище данных для его импорта вместе с хостом виртуальной машины. Затем вы можете использовать оба объекта для передачи cmdlet Import-Vapp для его импорта.

PS6> $myDatastore = Get-Datastore -Name "MyDatastore1"
PS6> $vmHost = Get-VMHost -Name "MyHost"
PS6> $vmHost | Import-vApp -Source 'C:\Exported-OVF\My_VM_Template\My_VM_Template.ovf' -Datastore $myDatastore -Force

Но подождите! Это не работает. В моем случае это не удалось, потому что я не заметил, что я фактически подключался к другому кластеру 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 доступны во всех ситуациях. Однако мы оба освоили новый навык и, хотя столкнулись с некоторыми непредвиденными трудностями, мы все же выполнили поставленную задачу.

Слишком часто мы спешим через ИТ-проекты, ища “быстрое” решение. Следите за скоростью, уделите еще минуту или две, чтобы задать вопросы, отойти в сторону и понять проблему, которую вы пытаетесь решить. Может быть, вы обнаружите, что узнали что-то новое.

Source:
https://adamtheautomator.com/ovf-file/