Рассмотрим vSphere Auto Deploy. Данная функция позволяет хостам грузиться по PXE и не иметь локальных дисков, а также может служить прекрасным автоматизированным инструментом для массовой установки ESXi. Это отличная функция, которая облегчает и сводит к одной перезагрузки гипервизора обновление или апгрейд инфраструктуры. Но на этом ее плюсы не ограничиваются, перечислять их можно довольно долго, но данная статья носит более технический характер, нежели маркетинговый. Что нужно для использования Auto Deploy в инфраструктуре:
- Лицензия Enterprise Plus
- Настроенная PXE загрузка серверов
- DHCP с настроенными 66 и 67 опциями
- TFTP сервер
- DNS естественно
У Auto deploy присутствуют несколько режимов использования, а именно:
- Stateless
- Stateless Caching
- Statefull Install
Stateless
Хост загружается по сети всегда, для этого нужен высоко доступный Auto Deploy, если он не доступен, ESXi не загрузится
Stateless Caching
Образ ESXi (Image Profile) вместе с настройками и параметрами кэшируется на локальных дисках сервера. Это не полноценная установка, а временное хранение профиля гипервизора. В случае, когда сервер Auto Deploy недоступен и только тогда, ESXi будет грузиться с локального кэша, но при этом есть казус, добавиться в vCenter без доступного Auto Deploy хост все равно не сможет. Но сам ESXi будет доступен для администрирования через Host Client.
Statefull Install
В данном режиме происходит полноценная установка ESXi на локальные диски или флешку сервера и Auto Deploy после этого уже не нужен для загрузки.
Как работает?
- Сервер начинает грузиться по PXE.
- Получает IP адрес от DHCP и также адрес TFTP сервера (66 параметр DHCP) и имя загрузчика (67 параметр DHCP).
- Хост подключается на TFTP сервер и загружает файл загрузчика.
- Хост загружается с загрузчика, в котором указаны параметры сервера Auto Deploy.
- Хост подключается к серверу Auto Deploy по HTTP, в это время служба Auto Deploy идентифицирует хост по определенным признакам, настроенным в Deploy Rule и предоставляет определенный образ для загрузки или установки в случае Statefull Install.
- Затем служба Auto deploy назначает хосту, указанный в том же правиле Host Profile с настройками.
- Хост загружается, применяет свой профиль и добавляется в vCenter в определенное расположение, это может быть кластер или папка в определенном датацентре.
- ???
- PROFIT
Терминология
- Image Profile – образ ESXi, набор пакетов, ядра гипервизора и всего из чего состоит ESXi.
- Software Package – программный компонент, драйвер или модуль в составе ESXi.
- Host Profile – коллекция настроек, включая индивидуальные, применимая к хостам.
- Deploy Rules – правила, на основе которых служба Auto Deploy производит развертывание хостов ESXi.
- Software Depot – хранилище c Image Profile и Software Package.
- Reference Host – первый хост, загруженный с помощью Auto Deploy. После добавления в vCenter, полностью настраивается «руками», затем с него извлекается Host Profile, который применяется к последующим хостам при развертывании.
Заранее подготовленная инфраструктура
Как упоминалось выше нам понадобятся DHCP, TFTP и DNS. Освещать процесс их развертывания тут я не буду, ибо есть масса специализированных гайдов в сети. Стоит правда затронуть несколько моментов. Для ESXi, которые мы будем развертывать стоит настроить заранее записи DNS, причем как A запись, так и PTR. PTR запись будет использоваться службой Auto deploy при назначении hostname для хоста во время как первого развертывания, так и всех последующих, что даст нам удобство использования имен вместо IP для ESXi. В области DHCP, которая будет обслуживать нашу инфраструктуру нужно настроить параметры 66 и 67. В параметре 66 просто указать IP или hostname нашего TFTP сервера, в параметре 67 имя файла загрузчика, об этом позже. Так же нужно настроить резервацию адресов для каждого хоста, что бы одному и тому же хосту всегда назначался один и тот же IP. На TFTP разместить все необходимые файлы, а это и файл загрузчика и многие другие, но об этом тоже позже. Просто это действия нужно выполнить до начала использования Auto Deploy и развертывания первого хоста. Дополнительно на необходимо скачать для дальнейшего использования и развертывания хостов, подходящий для нас ESXi Offline Bundle с сайта VMware или из другого источника. Следует настроить на серверах, которые будут использовать Auto Deploy, в BIOS или UEFI загрузку с сетевой карты и поставить ее на первое место в Boot Order. Так же следует убедиться, что сервера DHCP, DNS, TFTP и сам Auto Deploy доступны хостам по сети и VLAN-ы настроены корректно на сетевом оборудовании.
Настройка Auto Deploy
Начнем настраивать нашу службу Auto Deploy. В приведенном мной примере используется инфраструктура vSphere 6.7 и HTML5 клиент, хоть она уже и не является самой последней версией «сферы», но шаги, описанные тут, актуальны и для vSphere 7.0, к тому же моя «лаба» используется для подготовки к сертификации VCAP-DCV Deploy, а экзамен пока что основан на 6.7.
Включим службу Auto Deploy пройдя в Administration> Auto Deploy> Enable Auto Deploy and Image Builder, после этого мы можем конфигурировать его.
Теперь нужно добавить ESXi Offline Bundle, который мы заблаговременно скачали в Software Depot. Переходим Software Depot> New> Custom, задаем имя и указываем файл ZIP. После чего бандл загружается в Auto Deploy, и мы можем увидеть какие Image Profile и Software Package он содержит.
Далее нам необходимо загрузить на TFTP сервер нужные файлы, что бы хосты ESXi могли грузиться по сети и настроить 67 параметр DHCP. Эти файлы нужно скачать с самого Auto Deploy, который при старте службы сгенерировал их и прописал в них свой адрес и параметры подключения. Идем в Auto Deploy> Configure и нажимаем DOWNLOAD TFTP ZIP FILE.
Нам загружается архив с множеством файлов, среди которых и сами загрузчики. Распаковываем архив и копируем все содержимое на TFTP, можно в корневую папку. Определяем какой файл загрузчика нам нужно использовать. Посмотрим на Summary на слайде выше. Доступно три загрузчика – один для BIOS и два для UEFI систем. Выбираем подходящий для наших серверов, с учетом того с какой подсистемы они будут грузиться. Названия этого файла, или путь до него (если положили его не в корень TFTP) указываем в 67 параметре DHCP, с этого загрузчика будут грузиться хосты, которые обслуживаются DHCP. Если в инфраструктуре будут находиться хосты, использующие разные подсистемы (BIOS и UEFI), стоит разделить их пулами DHCP и в настройка пулов прописать разные файлы загрузчиков.
Настроим Deploy Rules. Переходим в одноименную вкладку и нажимаем New Deploy Rule.
Выбираем ему имя и указываем к каким хостам оно будет применяться. Можно выбрать все хосты без исключения или же разграничить использования этого правила только на сервера, соответствующие определенному критерию, или сразу нескольким, что делает наши правила очень гибкими. Для тестового стенда можно ограничиться выбором All hosts.
Далее мы назначаем какие компоненты будут применяться к развертываемым с помощью данного правила хостам. Выбираем только Image Profile, так как у нас нет еще Reference хоста, с которого мы будем снимать Host Profile. Жмем NEXT. Выбираем Image Profile, в моем примере это — ESXi-6.7.0-20191204001-standard. Подтверждаем, и вот мы создали провило, которое будет определять какие хосты каким образом обеспечивать и что с ними дальше делать.
После того, как правило готово, что бы оно стало применься к хостам в момент их загрузки, нужно активировать его. В Deployment Rules нажимаем ACTIVATE/DEACTIVATE RULES и перемещаем наше правило наверх, это активирует его.
На этом этапе мы подготовили инфраструктуру к использованию Auto Deploy и настал момент это проверить и загрузить наш Reference Host. Как описано выше, это первый хост, который в дальнейшем послужит «примером» для остальных. Штош… приступим… Включаем первый сервер, предварительно убеждаемся в том что загрузка по сети включена. После инициализации BIOS/UEFI, и скачивания загрузчика с TFTP наблюдаем картинку ниже.
Первый хост загрузился и через некоторое время появился в vCenter. Если настроена PTR запись на DNS, то ESXi будет добавлен по hostname, что существенно облегчит администратору жизнь.
Далее нужно настроить Reference Host и извлечь с него Host Profile. Описывать настройку тут я не буду, потому как это процесс сугубо индивидуальный для каждой инфраструктуры, но есть характерные для Auto Deploy хостов параметры, которые стоит настроить:
- Место для ESXi Core Dump
- Место для логов
- NTP
- Пароль root
Эта процедура описана тут. А мы двигаемся дальше.
После настройки Reference хоста и извлечения с него Host Profile необходимо вернуться к Deploy Rules, деактивировать действующее правило, так как изменить его в активном состоянии нельзя. Редактируем наше Deploy Rule и на шаге Configure ставим галочку на позиции Host Profile и выбираем извлеченный профиль с Reference хоста. Сохраняем наши изменения. Готово, теперь все хосты, развернутые по данному правилу, будут наследовать этот профиль и применять его настройки.
Дальше мы можем разворачивать новые хосты с помощью этого правила, на них будут применятся настройки из выбранного Host Profile за исключением параметров customization, или если по-другому, то это персональные настройки хоста, например, IP, iqn и так далее, которые должны быть индивидуальны у каждого хоста. Они заполняются вручную после развертывания нового хоста и добавления его в vCenter.
Так как у хоста первый раз загруженного посредством Auto Deploy и добавленного в vCenter отсутствуют данные Customizations в применяемом Host Profile — хост перейдет в Maintenance Mode. Наша задача – это заполнить ему Host Customizations и вывести из Maintenance Mode. Дальше можно использовать его для эксплуатации. После того как мы проделаем с каждым хостом такую операцию, работу по настройке Auto Deploy инфраструктуры можно считать завершенной.