Мой коллега Гэри Уильямс – системный администратор с большим опытом работы – поделился советами о том, как можно использовать Windows Deployment Services для развертывания не только ОС Windows. И сегодня я предлагаю его рекомендации вашему вниманию.
Windows Deployment Services (WDS) – полезное дополнение к платформе Windows. Для развертывания виртуальных машин с гостевой ОС Windows этот инструмент можно использовать прямо «из коробки». А после нескольких ловких движений руками он вполне в состоянии справиться с задачей развертывания серверов Linux и VMware при помощи загрузочного меню Preboot eXecution Environment (PXE).
В числе этих манипуляций – парочка команд, запускаемых из командной строки. Нужно всего-навсего переключить загрузчик PXE, используемый Windows, на загрузчик для Linux. В результате создастся пункт меню, позволяющий переключать загрузку с Linux PXE на таковую для Windows в случае необходимости, а IIS будет использоваться для работы веб-интерфейса для скачивания конфигурации Linux.
Я использую настроенный WDS для развертывания Windows, CentOS и ESXi, про что и расскажу в этом посте. Думаю, что пользователи других платформ найдут здесь идеи и для их развертывания.
Для нашего примера возьмем чистый сервер Windows с диском С: на 60 ГБ под ОС и диском WDS на 300 ГБ для различных файлов WIM, которые нам понадобятся для установки Windows и Linux.
Теперь можно загрузить виртуальную машину с помощью PXE, увидев стандартный для Windows экран загрузки WDS. Это стоит сделать для того, чтобы убедиться, что все работает, поскольку далее мы будем вносить изменения в основную функциональность WDS.
Итак, наш сервер WDS готов к развертыванию образов Windows, но мы хотим, чтобы можно было развертывать и образы Linux. Для этого мы поменяем загрузчик WDS на Linux PXE.
Для начала нам потребуется копия sysLinux.
Важно! Версия должна не превышать 3.86, иначе она не будет работать с ESXi (поскольку его инсталлятор базируется аж на 3.26).
Распаковываем sysLinux 3.86. zip во временный каталог и затем выполняем следующие шаги:
IIS нужен нам для файлов установки CentOS и ESXi. Я обычно создаю вот такую файловую структуру web-сервера на VMDK с данными:
-E:\web – корневая папка, на которую указывает IIS
-E:\web\centos\7.x\7.1 – установочные файлы CentOS 7.1
-E:\web\vmware\6.5 – установочные файлы VMware 6.5
В настройках IIS нужно включить опцию просмотра файловой структуры, чтобы инсталляторы Linux и VMware могли обратиться к соответствующим файлам.
Для этого запускаем консоль управления IIS, выбираем нужный сервер, выбираем его Default site и включаем Directory browsing командой Enable.
Также можно включить работу по HTTPS.
Теперь можно добавить возможность установки Linux. Обычно я выполняю вот такие шаги:
В завершение давайте добавим возможность установки ESXi 6.5.
Возможно, кому-то вся эта процедура покажется излишней морокой – но ее результат позволит использовать меню PXE для переключения на WDS и выбирать любую ОС Windows OS, поддерживающую файл WIM. Кроме того, его же можно будет использовать и для установки Linux и VMware. Вы также можете использовать другие программы на свой вкус, например, GParted или Memtest.
Windows Deployment Services (WDS) – полезное дополнение к платформе Windows. Для развертывания виртуальных машин с гостевой ОС Windows этот инструмент можно использовать прямо «из коробки». А после нескольких ловких движений руками он вполне в состоянии справиться с задачей развертывания серверов Linux и VMware при помощи загрузочного меню Preboot eXecution Environment (PXE).
В числе этих манипуляций – парочка команд, запускаемых из командной строки. Нужно всего-навсего переключить загрузчик PXE, используемый Windows, на загрузчик для Linux. В результате создастся пункт меню, позволяющий переключать загрузку с Linux PXE на таковую для Windows в случае необходимости, а IIS будет использоваться для работы веб-интерфейса для скачивания конфигурации Linux.
Я использую настроенный WDS для развертывания Windows, CentOS и ESXi, про что и расскажу в этом посте. Думаю, что пользователи других платформ найдут здесь идеи и для их развертывания.
Для нашего примера возьмем чистый сервер Windows с диском С: на 60 ГБ под ОС и диском WDS на 300 ГБ для различных файлов WIM, которые нам понадобятся для установки Windows и Linux.
Этап 1: развертывание сервера WDS
- Установить на сервере Windows Deployment Services и IIS. Это можно сделать через Server Manager или с помощью PowerShell:
Install-WindowsFeature –name Web-server -includemanagementtools Install-Windowsfeature –name WDS -includemanagementtools
- Затем нужно внести изменения в пул DHCP. В частности, можно добавить к нашему серверу еще NIC и настроить выделенную сеть, но я обычно так не делаю, а вместо этого настраиваю основной сервер DHCP – указываю дополнительные атрибуты WDS DHCP. Вот какие настройки я использую:
-Boot Server Host Name — ввожу IP-адрес сервера WDS.
-Bootfile Name – указываю исполняемый файл WDS, который хочу запускать на клиенте.
Остальные 3 настройки имеют стандартные значения для DHCP. - На сервере WDS запустить мастер конфигурации и завершить настройку.
- Пара изменений, которые я могу посоветовать внести в сетап:
— Можно интегрировать сервер с Active Directory, т.к. на этом этапе мы задаем настройки Windows, но я предпочитаю отдельно стоящий сервер:
Согласно указываемой настройке, он будет отвечать на запросы клиентских машин и не потребует никаких «танцев» с AD:
— Обычно я меняю путь с C:\RemoteInstall на E:\RemoteInstall, где E: — это упомянутый выше второй диск, который я предназначил для файлов WIM, Linux и пр.
- Затем нужно внести изменения в меню PXE – для этого понадобится запустить UI установки WDS, кликнуть правой кнопкой на нашем сервере и в его свойствах на вкладке Boot сменить опцию Require the user to press F12 key to continue the PXE boot на Always continue the PXE boot:
- После этого можно добавить файлы .WIM на наш сервер WDS. Берем файлы boot.wim и install.wim с Windows 2016 ISO – и наш сервер подготовлен к развертыванию машин с ОС Windows.
Теперь можно загрузить виртуальную машину с помощью PXE, увидев стандартный для Windows экран загрузки WDS. Это стоит сделать для того, чтобы убедиться, что все работает, поскольку далее мы будем вносить изменения в основную функциональность WDS.
Этап 2: замена загрузчика Windows Deployment Services
Итак, наш сервер WDS готов к развертыванию образов Windows, но мы хотим, чтобы можно было развертывать и образы Linux. Для этого мы поменяем загрузчик WDS на Linux PXE.
Для начала нам потребуется копия sysLinux.
Важно! Версия должна не превышать 3.86, иначе она не будет работать с ESXi (поскольку его инсталлятор базируется аж на 3.26).
Распаковываем sysLinux 3.86. zip во временный каталог и затем выполняем следующие шаги:
- Проверяем наличие файлов
core\pxeLinux.0
com32\menu\vesamenu.c32
com32\modules\chain.c32
- Переименовываем файл pxeLinux.0 в pxeLinux.com.
- Копируем файлы в каталоги remoteinstall\boot\x64 и remoteinstall\boot\x86.
- В каталогах x86 и x64 переименовываем pxeboot.n12 в pxeboot.0
- Затем из командной строки запускаем следующие команды, чтобы поменять загрузчик на Linux PXE loader:
wdsutil /set-server /bootprogram:boot\x86\pxeLinux.com /architecture:x86 wdsutil /set-server /N12bootprogram:boot\x86\pxeLinux.com /architecture:x86 wdsutil /set-server /bootprogram:boot\x64\pxeLinux.com /architecture:x64 wdsutil /set-server /N12bootprogram:boot\x64\pxeLinux.com /architecture:x64
- После этого в каталогах x86 и x64 создаем подкаталог с именем pxeLinux.cfg, а в нем создаем файл с именем default и копируем в него следующее:
Настройка загрузочного менюDEFAULT vesamenu.c32
PROMPT 0
NOESCAPE 0
ALLOWOPTIONS 0
# Timeout in units of 1/10 s
TIMEOUT 0
MENU MARGIN 10
MENU ROWS 16
MENU TABMSGROW 21
MENU TIMEOUTROW 26
MENU COLOR BORDER 30;44 #20ffffff #00000000 none
MENU COLOR SCROLLBAR 30;44 #20ffffff #00000000 none
MENU COLOR TITLE 0 #ffffffff #00000000 none
MENU COLOR SEL 30;47 #40000000 #20ffffff
MENU BACKGROUND flow.jpg
MENU TITLE PXE Boot Menu
#---
LABEL wds
MENU LABEL Windows Deployment Services
MENU DEFAULT
KERNEL pxeboot.0
#---
LABEL CentOS68
MENU LABEL CentOS 6.8
KERNEL /web/CentOS/6.8/images/pxeboot/vmlinuz
append initrd=/web/CentOS/6.8/images/pxeboot/initrd.img root=/dev/ram0 init=/Linuxrc ramdisk_size=100000 ks=https://[IP of your WDS server]/CentOS/6.8/centos-base-ks.cfg
#---
LABEL CentOS72
MENU LABEL CentOS 7.2
KERNEL /web/CentOS/7.2/images/pxeboot/vmlinuz
append initrd=/web/CentOS/7.2/images/pxeboot/initrd.img
#---
LABEL VMWare500U3
MENU LABEL VMWare 5.0.0 U3
KERNEL /web/VMWare/5.0.0/U3/mboot.c32
APPEND -c /web/VMWare/5.0.0/U3/boot.cfg
#---
LABEL VMWare553b
MENU LABEL VMWare 5.5 U3b
KERNEL /web/VMWare/5.5.0/U3b/mboot.c32
APPEND -c /web/VMWare/5.5.0/U3b/boot.cfg
#---
LABEL VMWare60
MENU LABEL VMWare 6.0
KERNEL /web/VMWare/6.0/mboot.c32
APPEND -c /web/VMWare/6.0/boot.cfg
#---
LABEL VMWare65
MENU LABEL VMWare 6.5
KERNEL /web/VMWare/6.5/mboot.c32
APPEND -c /web/VMWare/6.5/boot.cfg
#---
LABEL Abort
MENU LABEL AbortPXE
Kernel abortpxe.0
#---
LABEL local
MENU LABEL Boot from Harddisk
LOCALBOOT 0
Type 0x80
Этап 3: редактирование настроек IIS
IIS нужен нам для файлов установки CentOS и ESXi. Я обычно создаю вот такую файловую структуру web-сервера на VMDK с данными:
-E:\web – корневая папка, на которую указывает IIS
-E:\web\centos\7.x\7.1 – установочные файлы CentOS 7.1
-E:\web\vmware\6.5 – установочные файлы VMware 6.5
В настройках IIS нужно включить опцию просмотра файловой структуры, чтобы инсталляторы Linux и VMware могли обратиться к соответствующим файлам.
Для этого запускаем консоль управления IIS, выбираем нужный сервер, выбираем его Default site и включаем Directory browsing командой Enable.
Также можно включить работу по HTTPS.
Этап 4: добавление Linux
Теперь можно добавить возможность установки Linux. Обычно я выполняю вот такие шаги:
- Скачать самую «лёгкую» версию ISO с CentOS, смонтировать ISO и скопировать содержимое в каталог E:\web\centos\7.x\7.[version] (или другой с таким же понятным названием).
- После этого можно будет добавить, например, файл запуска (kickstart file) для пущей автоматизации. Например, лично я добавляю в дефолтный файл pxeLinux.cfg вот такой кусок:
LABEL CentOS72 MENU LABEL CentOS 7.2 KERNEL /web/CentOS/7.2/images/pxeboot/vmlinuz append initrd=/web/CentOS/7.2/images/pxeboot/initrd.img inst.repo=[IP of your WDS server]/CentOS/7.2 ks=[IP of your WDS server]/CentOS/7.2/centos-base-ks.cfg
Этап 5: добавление VMware
В завершение давайте добавим возможность установки ESXi 6.5.
- Аналогично этапу 4, нужно скопировать все файлы из образа VMware ISO в соответствующий каталог на нашем сервере WDS.
- Затем нужно отредактировать файл boot.cfg в каталоге VMware и убрать пробелы. Файл в итоге будет выглядеть так:
Заключение
Возможно, кому-то вся эта процедура покажется излишней морокой – но ее результат позволит использовать меню PXE для переключения на WDS и выбирать любую ОС Windows OS, поддерживающую файл WIM. Кроме того, его же можно будет использовать и для установки Linux и VMware. Вы также можете использовать другие программы на свой вкус, например, GParted или Memtest.