Простая задачка: прислали образ виртуальной машины в виде OVA файла и попросили развернуть на ESXi 7.
Если попытаться импортировать такой файл в ESXi 7, то получим ошибку:
Issues detected with selected template. Details: - -1:-1:VALUE_ILLEGAL: No supported hardware versions among [virtualbox-2.2]; supported: [vmx-04, vmx-07, vmx-08, vmx-09, vmx-10, vmx-11, vmx-12, vmx-13, vmx-14, vmx-15, vmx-16, vmx-17, vmx-18, vmx-19].
Собственно, по такой ошибке и можно понять, что образ был экспортирован из VirtualBox.
В Интернете куча статей как сконвертировать такой формат для ESXi, там много всего лишнего, да и у меня не заработало. Проще всего действовать без этих инструкций. С помощью 7-Zip распаковываем файл OVA как обычный архив. При распаковке могут быть ошибки, забиваем на них, главное, чтобы распаковалось.
Нам здесь нужны файлы OVF и VMDK. VMDK — это диск, может быть не один. Открываем на чтение OVF файл. Это XML с параметрами виртуальной машины. Из него нам нужно понять:
- Что за операционная система? У меня FreeBSD_64:
<vbox:OSType ovf:required="false">FreeBSD_64</vbox:OSType>
- Сколько процессоров? У меня 2:
<Item> <rasd:Caption>2 virtual CPU</rasd:Caption> <rasd:Description>Number of virtual CPUs</rasd:Description> <rasd:ElementName>2 virtual CPU</rasd:ElementName> <rasd:InstanceID>1</rasd:InstanceID> <rasd:ResourceType>3</rasd:ResourceType> <rasd:VirtualQuantity>2</rasd:VirtualQuantity> </Item>
- Сколько памяти? У меня 4 ГБ:
<Item> <rasd:AllocationUnits>MegaBytes</rasd:AllocationUnits> <rasd:Caption>4096 MB of memory</rasd:Caption> <rasd:Description>Memory Size</rasd:Description> <rasd:ElementName>4096 MB of memory</rasd:ElementName> <rasd:InstanceID>2</rasd:InstanceID> <rasd:ResourceType>4</rasd:ResourceType> <rasd:VirtualQuantity>4096</rasd:VirtualQuantity> </Item>
- Сколько сетевых адаптеров? У меня 1:
<Item> <rasd:AutomaticAllocation>true</rasd:AutomaticAllocation> <rasd:Caption>Ethernet adapter on 'Bridged'</rasd:Caption> <rasd:Connection>Bridged</rasd:Connection> <rasd:ElementName>Ethernet adapter on 'Bridged'</rasd:ElementName> <rasd:InstanceID>6</rasd:InstanceID> <rasd:ResourceSubType>E1000</rasd:ResourceSubType> <rasd:ResourceType>10</rasd:ResourceType> </Item>
Ещё могут быть дополнительные устройства, типа USB, CD и прочих, вам решать, нужны они или нет. Мне не нужны.
Создаём новую виртуальную машину с нужной ОС и определёнными устройствами. Без диска.
Загружаем в хранилище образ диска VMDK в папку новой виртуальной машины. Редактируем виртуальную машину, добавляем существующий диск.
Включаем.
Работает.
Возможные проблемы
Один раз столкнулся с тем, что виртуальная машина была с GUI и не хотела работать при большом разрешении, тогда добавил видеопамяти. В OVF тоже можно подсмотреть её размер.
<Display controller="VMSVGA" VRAMSize="16"/>
Другой раз попалась виртуальная машина с несколькими сетевыми картами, но это тоже можно определить в OVF.