Есть такая штука – UDA, Ultimate Deployment Appliance.
Это – виртуальная машина, готовая быть сервером дистанционного развертывания.
И сейчас я расскажу как ее можно применить для решения моей специфической задачи.
Введение
Есть десяток однотипных серверов. На них необходимо регулярно переустанавливать ОС – в моем конкретном случае преимущественно разные версии ESX\ESXi, хотя бывают нюансы. Притом хочется сразу и предварительные настройки делать.
Конечно, как вариант можно снять образ с каждого сервера – но это означает как минимум:
- потратить немало места
- получить усложнения при обновлении состояния образа
Поэтому я попробовал другой вариант – установка по сети, с файлом ответов.
К счастью, есть специализированное решение – UDA, Ultimate Deployment Appliance.
Первоначальная настройка
Идем сюда 0
http://www.rtfm-ed.co.uk/vmware-content/ultimate-da/, и загружаем архив с UDA формате OVA – если планируем импортировать эту штуку на ESXi.
Или, как вариант, идем на оригинальный сайт проекта -
http://www.ultimatedeployment.org - и загружаем архив с виртуалкой в формате Workstation..
В клиенте vSphere выберем
File –>
Deploy OVF Template, укажем на распакованный из архива ova-файл и дождемся окончания импорта.
После этого виртуальную машину включаем, и в ее консоли проходим мастер первоначальной настройки – всякие пароли пользователей по умолчанию и все такое.
Единственно важный вопрос – какой DHCP сервер мы будем использовать.
Вариантов два – или DHCP сервер прямо внутри UDA, какой другой. Я выберу второй вариант – чуть позже укажу что надо настроить на внешнем сервере DHCP .
После первоначальной настройки имеет смысл прокачать нашу UDA (внимание, этот шаг может устареть в дальнейшем) – скачиваем tgz- архив с обновлением -
Patch of UDA for ESX – Build 20 - , через веб-интерфейс его указываем в пункте
System –>
Upgrade – UDA обновляется до сборки, поддерживающей ESXi 5.
Затем можно поставить VMware tools – через клиент vSphere подмонтировать к ВМ с UDA стандартный iso с Linux-дистрибутивом тулзов, и через веб-интерфейс указать ставить VMware tools с локального cdrom.
Ну и настройка внешнего DHCP – я использовал DHCP на Windows 2008:
надо включить опции 066 Boot Server Host Name и 067 Bootfile Name.
Boot Server – IP-адрес нашей UDA,
Имя загрузочного файла - pxelinux.0 .
Настройка ОС для установки
Ну а теперь начнем делать подготовительные шаги и настраивать UDA. Хорошая новость – все, что касается настроек UDA, делается через веб-интерфейс.
Нам надо
1) Сделать доступным дистрибутив. Я буду использовать SMB-сетевой ресурс, кому-то может быть удобнее NFS или скопировать iso прямо внутрь UDA.
2) Монтировать образ дистрибутива ОС. У меня на примере ESXi 4.1.
3) Создать “template” – это название пункта меню, ссылающегося на какой-то дистрибутив с каким-то файлом ответов.
Создаем сетевой ресурс с iso-образом дистрибутива ОС, которую\которые хотим устанавливать. Доступ необходим read-write, и для учетной записи с непустым паролем. Образ можно расположить не только в корне сетевого ресурса.
Затем в веб-интерфейсе UDA идем в пункт
Storage –>
New.
Заполняем поля:
Затем нам следует “зарегистрировать” дистрибутив ОС, которую планируем устанавливать через vMA. Идем в пункт
OS –>
New.
На первом шаге указываем “Flavor Name” – метка дистрибутива для UDA, и тип гостевой ОС.
На втором шаге – выбираем образ iso с ранее зарегистрированного хранилища (в моем случае это ранее описанный SMB-сетевой ресурс).
Все.
Последний шаг – создание шаблона. Пункт
Templates меню веб-интерфейса, –>
New.
Там мы выберем ранее зарегистрированный дистрибутив (Flavor), и имя шаблона. Имя шаблона затем мы увидим при загрузке сервера-жертвы, так что лучше имя давать говорящее.
Важный шаг – после создания выделит свежесозданный шаблон, и нажать кнопку
Configure – >
Advanced. В этом пункте меню нам доступен для редактирования файл ответов.
Информацию по файлам ответов и их параметрам можно найти в документации
А еще одна интересная возможность – создания “подшаблонов”, Subtemplates.
Это когда мы в файле ответов шаблона используем переменные вместо уникальных параметров, таких как имя ОС и IP-адрес. А в пункте Subtemplates перечисляем значения этих переменных.
В моем случае, соответствующий шаблону файл ответов выглядит так:
1: accepteula
2: rootpw password
3: autopart --firstdisk --overwritevmfs
4: install
5: url http://[UDA_IPADDR]/[OS]/[FLAVOR]
6: network
7: --bootproto=static --ip=[IPADDR] --gateway=192.168.22.253
8: --nameserver=192.168.22.252 --netmask=255.255.255.0
9: --hostname=[HOSTNAME]
10: reboot
(Хорошая новость – сам файл ответа, без учета переменных, генерируется автоматически. А мы лишь правим под себя)
И список переменных:
2: SUBTEMPLATE;IPADDR;HOSTNAME
3: esxi_4_01;192.168.22.1;esxi01
4: esxi_4_02;192.168.22.2;esxi02
5: esxi_4_03;192.168.22.3;esxi03
6: esxi_4_04;192.168.22.4;esxi04
7: esxi_4_05;192.168.22.5;esxi05
8: esxi_4_06;192.168.22.6;esxi06
9: esxi_4_07;192.168.22.7;esxi07
10: esxi_4_08;192.168.22.8;esxi08
11: esxi_4_09;192.168.22.9;esxi09
12: esxi_4_10;192.168.22.10;esxi10
(Названия переменных – на наш выбор)
Теперь, при попытке загрузиться с PXE в этом сегменте сети я вижу меню – список шаблонов:
Выбрав меню с подшаблонами я увижу их список:
И через несколько минут после выбора нужного подшаблона я имею готовый к работе сервер:
Ну а дальнейшая настройка крайне удобна при помощи скриптов PowerCLI.