7 лет назад мы писали про утилиту ESXi-Customizer, которая позволяет добавлять кастомные драйвера в ISO-образ VMware ESXi. У того же автора (Andreas Peetz) есть еще одна замечательная утилита, которая актуальна и на сегодняшний день - ESXi-Customizer-PS. Актуальна - это значит, что ее последняя версия (от 18 апреля этого года) поддерживает последние версии платформ и фреймворка - vSphere 6.7 и PowerCLI 10.
ESXi-Customizer-PS - это PowerShell-скрипт, который на входе принимает большое число различных параметров, а на выходе дает кастомизированный ISO-образ или офлайн-бандл ESXi:
Сценарий имеет три режима работы:
Создать установочный образ ISO или Offline Bundle напрямую из хранилища VMware Online depot (стандартный режим).
Создать установочный образ ISO или Offline Bundle из скачанного ESXi Offline Bundle (параметр -izip).
Обновление локального ESXi Offline Bundle с помощью ESXi patch bundle из хранилища VMware Online depot (параметры -izip -update).
С помощью этих трех режимов вы можете добавлять бандлы из хранилища V-Front Online Depot, либо любого другого Online Depot, указав его URL, а также можно указывать локальные Offline Bundles и VIB-файлы (собственно, кастомные драйверы или кастомный софт под ESXi).
Об использовании утилиты ESXi-Customizer-PS Alex Lopez снял хороший видеотуториал:
Скрипт можно использовать множеством способов. Давайте рассмотрим основные:
1. Вызов скрипта без параметров.
Например:
.\ESXi-Customizer-PS-v2.6.0.ps1
В этом случае утилита создаст ISO-образ ESXi самой последней версии (6.7 на данный момент) и с самым последним уровнем обновлений. Вы также можете указать конкретный номер версии ESXi, для которой будет получен ISO с последними обновлениями. Например:
-v50 : ESXi 5.0 ISO
-v51 : ESXi 5.1 ISO
-v55 : ESXi 5.5 ISO
-v60 : ESXi 6.0 ISO
-v65 : ESXi 6.5 ISO
-v67 : ESXi 6.7 ISO
Также есть еще три параметра:
-outDir : записывать ISO-образ в указанную директорию.
-sip : не использует последний уровень патчей, а показывает меню, где можно выбрать конкретный патч. Новые патчи будут показаны сверху. Также будут показаны и профили, которые содержат только обновления безопасности и/или VMware Tools.
-ozip : на выходе будет сформирован не ISO, а ESXi Offline Bundle, который можно импортировать в Update Manager, указать вручную для обновления черезesxcli или использовать как входной бандл для следующих кастомизаций.
2. Использование офлайн бандла ESXi Offline Bundle как входного параметра (вместо VMware Online depot).
Например, такая команда позволит вам получить ISO-образ из офлайн-бандла:
Офлайн бандл можно скачать через VMware Patch Download portal. Некоторые вендоры также предлагают свои кастомизированные офлайн-бандлы, например HP. Офлайн бандлы VMware можно найти вот тут. Также вы можете использовать параметры из пункта 1.
3. Добавление дополнительных пакетов из присоединенных хранилищ Online depots.
Например, вот эта команда позволит добавить сетевые драйверы, отсутствующие в образе ESXi 5.5:
Данные драйверы есть в VMware Online depot, так как они есть в составе ESXi 5.0 и 5.1, но были исключены из дистрибутива ESXi 5.5. Важно, что для ESXi 6.0 такая штука для этих драйверов уже не прокатит, так как они были добавлены в черный список (blacklised).
4. Присоединение онлайн-хранилища V-Front Online Depot и других хранилищ.
Здесь надо не забывать указывать номер версии патчируемого гипервизора (в данном случае -v60 - это ESXi 6.0).
7. Расширенные параметры.
У утилиты есть еще несколько расширенных параметров, которые дают еще больше возможностей по кастомизации образов ESXi:
-log : указание пути к кастомному лог-файлу.
-test : тестирование возможности построения или обновления образа без накатывания реальных изменений. Экономит массу времени, так как не перестраивает ISO или zip, а также не качает обновления и образы из VMware Online depot.
-nsc : это опция -noSignatureCheck, которая отключает проверку сигнатуры при выполнении функции экспорта. Ее нужно использовать, если вы получаете ошибку типа "Could not find trusted signer." (пакет с некорректными или отсутствующими сигнатурами).
-ipname, -ipdesc, -ipvendor: задание собственных атрибутов в профиле образа. По умолчанию в имени и описании останутся прежние значения с приставкой "customized", а имя вендора не изменится.
-remove vib1[,...]: удаление одного или нескольких VIB-пакетов из кастомного образа.
Скачать ESXi-Customizer-PS-v2.6.0.ps1 можно по этой ссылке.
С выходом обновленной версии платформы виртуализации VMware vSphere 5.5 компания VMware ввела новую модель Native Device Driver Architecture, которая позволяет использовать нативные драйверы для VMkernel вместо драйверов под Linux.
Однако, помимо этого нововведения, VMware также убрала и неофициальную поддержку многих SATA-контроллеров, которые раньше и не заявлялись как работающие, но вполне нормально функционировали на whitebox-конфигурациях (например, контроллеры ASMedia и Marvell). Теперь многие SATA-контроллеры в ESXi 5.5 просто не работают.
Но не все так плохо. Поскольку поддержка старой модели драйверов еще осталась (неизвестно будет ли она в следующей версии ESXi, но скорее всего будет, так как не все партнеры успеют перейти на новую модель), то можно заставить работать некоторые неподдерживаемые контроллеры SATA AHCI, поскольку сам драйвер AHCI остался в виде модуля VMkernel (ahci). Andreas Peetz не только написал хорошую статью о том, как это сделать, но и сделал кастомные VIB-пакеты для добавления поддержки некоторых SATA-контроллеров AHCI.
Суть такая - автор раньше думал, что команда vmkload_mod ahci заставляет ESXi загружать драйверы для всех обнаруженных PCI-устройств, то оказалось, что она конфигурирует только устройства, которые есть в файле /etc/vmware/driver.map.d/ahci.map. А там неподдерживаемых девайсов не появляется. Поэтому надо сделать отдельный map-файл и добавить ссылки соответствующих устройств (их PCI ID) на драйвер AHCI.
Андреас сделал VIB-пакет позволяющий добавить поддержку ESXi следующих SATA-контроллеров:
ASMedia Technology Inc. ASM1061 SATA IDE Controller (1b21:0611)
ASMedia Technology Inc. ASM1062 Serial ATA Controller (1b21:0612)
Marvell Technology Group Ltd. 88SE9123 PCIe SATA 6.0 Gb/s controller (1b4b:9123)
Marvell Technology Group Ltd. 88SE9172 SATA 6Gb/s Controller (1b4b:9172)
В каментах Андреас принимает заявки на добавление поддержки нужных SATA-контроллеров, так что если их в приведенном выше списке - пишите ему и он добавит.
Процедура добавления поддержки контроллеров такова. Добавляем возможность использования кастомных драйверов на ESXi:
esxcli software acceptance set --level=CommunitySupported
Разрешаем использование http на хосте в фаерволе:
esxcli network firewall ruleset set -e true -r httpClient
Автор сайта v-front.de выпустил обновленную версию утилит ESXi5 Community Packaging Tools 2.0 (ESXi5-CPT), которые позволяют создавать пакеты для VMware ESXi в форматах VIB (VMware Installation Bundle) and ZIP (VMware Offline Bundle). Для VIB-файлов их статус (acceptance level) будет указан как Community Supported. Об этих утилитах от Andreas Peetz мы уже писали вот тут. Зачастую, эти утилиты необходимы пользователям для включения сторонних драйверов устройств в состав дистрибутива платформы ESXi, которые отсутствуют в стандартном комплекте поставки.
Новые возможности ESXi5 Community Packaging Tools 2.0:
Поддержка VMware ESXi 5.1.
Обновленный TGZ2VIB5.cmd 2.0:
Добавлены новые опции GUI с дополнительными настройками VIB и параметрами установки
Добавлено меню для загрузки шаблонов настроек для различных типов пакетов (например, "Hardware driver" или "Firewall rule")
Возможность не указывать контрольные суммы в дескрипторном XML-файле
Утилита VIB2ZIP не изменялась.
Скачать ESXi5 Community Packaging Tools 2.0 можно по этой ссылке.
Также, напомним, что на сайте проекта VMware Labs есть еще одно средство для создания VIB-пакетов для VMware ESXi, но работающее только в командной строке и под Linux - VIB Author.
Одна из дополнительных опций VIB Author - это возможность задания электронной подписи к VIB-файлу, однако это не требуется для пакетов уровня Community Supported. Кроме того, VIB Author позволяет редактировать далеко не все директории, поэтому ESXi5-CPT - наш выбор.
Наконец-то хоть кто-то сделал (или я только узнал) человеческую утилиту для добавления custom-драйверов в дистрибутив (ISO) сервера VMware ESXi 5. На сайте v-front обнаружилось средство ESXi-Customizer:
Утилита ESXi Customizer полностью бесплатна и имеет GUI под Windows, однако, отметим, что такой способ вставки драйверов в дистрибутив ESXi не поддерживается со стороны VMware. Во время получения финального ISO-образа ESXi вы можете прервать процесс и поменять различные параметры целевого образа (в текстовом фале):
Скачать утилиту ESXi-Customizer можно по этой ссылке. Также по теме будет интересна вот эта статья.