Какое-то время назад появилась необходимость автоматизировать процесс развертывания новой инфраструктуры для vSphere для клиента, и, не найдя готового решения которое бы меня полностью удовлетворяло, я решил написать скрипт сам (конечно, используя блоки готовых функций/модулей для промежуточных задач).
В целом, мой процесс подобен подходу Романа, с несколькими различиями:
Заказчик использует серверы Dell PowerEdge 14G.
Решение учитывает установку на множественных сайтах заказчика по всему миру и различные конфигурации серверов.
Решение полностью автоматизировано, включая конфигурацию BIOS/RAID-контроллеров серверов.
По моему (скромному, конечно) мнению, оно в чем-то превосходит VMware Statefull Autodeploy, при этом требует лишь лицензию vSphere Standard. В качестве параметров скрипту передается: пароль root, имя хоста, IP-адреса для сервисных интерфейсов (vMotion, SAN и т.п.).
Здесь я коснусь лишь последнего различия, так как в свое время не нашел похожих решений.
Еще раз упомяну что решение специфично для серверов Dell, но, учитывая то, что большинство вендоров стараются повторять решения друг друга, его наверняка можно адаптировать для других производителей.
После того, как сервер физически установлен в стойку, и сетевые кабели подключены к сетевым интерфейсам, персонал на сайте в моем случае должен вручную настроить IP-адрес для iDRAC (если вы не сталкивались с серверами Dell – это название интерфейса удаленного управления, аналог iLO у HP, либо CIMC у CISCO) интерфейса.
На самом деле, этот шаг тоже можно автоматизировать, оставив персоналу на сайтах только установку сервера в стойку и подключение кабелей. Сделать это можно следующим образом. По умолчанию, iDRAC настроен на получение IP-адреса с DHCP-сервера. Если ваш DHCP-сервер настроен на регистрацию имен на DNS-сервере, то вскоре после подключения сервера к питанию и подключении сетевого интерфейса iDRAC зарегистрирует свое имя на DNS-сервере. Дефолтное имя состоит из префикса (idrac-) и серийного номера сервера.
Таким образом, вам лишь нужно узнать серийный номер сервера, чтобы знать адрес “первого” подключения. В моем же случае в связи со спецификой сайтов клиента IP-адрес задавался вручную, и я мог получить его из DNS.
Следующим шагом в установке является опциональная конфигурация железа (настройки BIOS, RAID-контроллеры и т.п.) и подключение кастомизированного загрузочного ISO-образа с дистрибутивом ESXi, включение сервера и, собственно, загрузка с данного образа.
Для этого вам понадобится PS Module DellPEWSMANTools, который можно найти здесь:
Импортировав модуль и добавив функцию в ваш скрипт, задаем переменные и выполняем подготовку.
Вам нужны будут логин и пароль для авторизации на iDRAC в виде PS Credentials, подготавливаем:
Имя пользователя iDRAC:
$iDRACUser = “Username”
Пароль iDRAC. Для простоты здесь запрашивается ввод с консоли, и сразу шифруется. Я же передаю пароль в виде параметра и позже шифрую.
$iDRACSecurePass = Read-Host "Enter your password" -AsSecureString
По моей инструкции сервер должен быть выключен после настройки, но мы не надеемся на то, что персонал на сайте читает инструкции, поэтому сначала выключаем сервер:
Даем время на завершение задания. Тут я явно перестраховываюсь, ввиду того что с ранними версиями IDRAC firmware были проблемы с медленным выполнением задачи.
Start-Sleep -Seconds 60
Включаем сервер чтобы Virtual CD-ROM с примонтированным образом зарегестрировался в качестве загрузочного устройства и даем ему загрузиться:
15-минутное ожидание необходимо для нескольких перезагрузок и установки ESXi. В следующей статье я расскажу несколько моментов которые мне кажутся интересными в процессе установки.