VMWare Auto Deploy + Microsoft DHCP + WDS

На днях вышла vSphere 5.1 и т.к. ко мне приехало 4 новых сервера, я решил не медлить и поставить ее туда. А заодно еще и воспользоваться технологией Auto Deploy, которая позволяет загружать гипервизор ESXi на серверы посредством сетевой загрузки PXE. Поскольку ставить сторонний софт для tftp сервера мне очень не хотелось, то я решил воспользоваться уже существующим в сети tftp сервером Microsoft в составе службы WDS.

Для начала небольшое описание процесса загрузки:

  1. Машина ищет в сети DHCP по 67 UDP порту и получает от него нужные для сетевой загрузки параметры: 060 PXEClient, 066 Boot Server Host Name, 067 Bootfile Name и другие, включая ip адрес
  2. Машина пытается скачать с указанного в 66 параметре tftp сервера указанный в 67 параметре загрузочный файл
  3. Так как вся загрузка основана на gPXE, то загрузчик настроен на получение всего остального по http протоколу с севера Auto Deploy или VCSA в моем случае, т.к. он туда интегрирован
  4. После всего этого, машина добавляется в указанные кластеры или папки vSphere и на нее загружается конфигурационный файл

 

По непонятной для меня причине VCSA не содержит в себе tftp сервера. мне кажется, что это было бы очень удобно, тем более, что загрузка образов ESXi все равно просходит с VCSA по http протоколу, что мешало добавить такую мелочь как tftp сервер?

PS: у меня установлена Virtual Center Server Appliance, т.е. сама управляющая машина виртуальная и в нее уже интегрирован Auto Deploy.

Казалось бы, что может быть проще — разместил загрузочные файлы на tftp, настроил резервацию в DHCP для нужного сервера с нужными параметрами, которые будут указывать на нужный загрузочный файл и все! Но нет!

Проблема состоит в том, что DHCP слушает на 67 UDP порту и WDS тоже работает по этому порту, и не просто работает, а она еще и всех заставляет загружаться по сети! Так вот, если у вас эти службы на разных машинах, то что бы вы не писали  параметры 66 и 67, загрузка будет происходить только с сервера WDS! Потому что он подсовывает всем загружающимся компьютерам свои данные, невзирая на то, что там посылает DHCP своим клиентам.

Но есть решение, нужно зайти в свойства WDS сервера и поставить галочку — не слушать 67 порт, таким образом, мы как бы отключим WDS и работать она будет только тогда когда ее об этом попросит сервер DHCP.

Поскольку мы как бы отключили WDS, то потеряли возможность им пользоваться. Вернем возможность сетевой загрузки с WDS, но уже через параметры DHCP: нам нужно сделать, чтобы по-умолчанию все машины загружались стандартным загрузчиком WDS для установки Windows, а нужные нам серверы загружались с Auto Deploy.

Для этого в параметры сервера DHCP добавляем параметры: 66 — ip-адрес сервера WDS (и, соответственно, tftp), 67 — boot\x64\Wdsnbp.com, 60 — PXEClient.

Опять облом — параметра 60 на сервере может и не быть 🙁

Делаем так — запускаем CMD от имени администратора и далее:

C:\WINDOWS\system32>netsh
netsh>dhcp
netsh dhcp>server \\<server_machine_name>
netsh dhcp>add optiondef 60 PXEClient String 0 comment=PXE support
netsh dhcp>set optionvalue 60 STRING PXEClient
netsh dhcp>exit

Перезапускаем оснастку DHCP и, наконец, включаем 60 параметр!

Замечательно, теперь мы добились того, что сервер WDS не затыкает всех подряд, а работает только по приказу DHCP и теперь можно создать нужные резервирования по mac адресам для загрузки выбранных серверов через Auto Deploy.

В vCenter заходим в Managment — Administration — AutoDeploy и скачиваем оттуда FTFP Boot Zip — архив с загрузочными файлам для tftp. Содержимое я распаковал в корень tftp сервера Microsoft, обычно это здесь D:\RemoteInstall. Все загрузчики у WDS лежат там же в папке Boot, я решил там создать папку vSphere и распаковать содержимое архива туда, т.е. получилось, что загрузчик лежит вот здесь D:\RemoteInstall\Boot\vSphere\undionly.kpxe.vmw-hardwired.

Делаем нужную резервацию в DHCP и прописываем туда параметр 67 — boot\vsphere\undionly.kpxe.vmw-hardwired

Загружаемся…. загружаемся! Вроде пошло… нет, опять облом! Загрузчик не хочет искать конфигурационный файл tramp в той же папке, он хочет видеть его в корне tftp 🙁 Ну что ж, перенесем все загрузочные файлы в корень, т.е. непосредственно в D:\RemoteInstall… и оказывается теперь вообще ничего не работает, даже хуже чем было. Опять очередные грабли — читать с tftp сервера Microsoft можно лишь только из нескольких каталогов, к числу которых корневой не относится — безопасность, чтоб ее!

Ползем в реестр и правим параметр ReadFilter — ставим там * (звездочку), чтобы читать можно было отовсюду!

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\WDSServer\Providers\WDSTFTP]
"ReadFilter"=hex(7):2a,00,00,00,00,00


Комментарии:

3 комментария на «“VMWare Auto Deploy + Microsoft DHCP + WDS”»

  1. У vcsa есть tftp сервер — atftpd, поднимается по этой инструкции: http://grokee.com/vcsa-tftp-server/

  2. TrueAlex:

    Век живи — век учись! Евгения, спасибо за информацию!

  3. временная регистрация граждан РФ:

    Хм… Как раз на эту тему думал, а тут такой пост шикарный, спасибо!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *