[Перевод] Полезные советы IT-администратору: развертывание различных ОС с помощью Windows Deployment Services

Мой коллега Гэри Уильямс — системный администратор с большим опытом работы — поделился советами о том, как можно использовать 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, про что и расскажу в этом посте. Думаю, что пользователи других платформ найдут здесь идеи и для их развертывания.

qlq_uiumw_bypc5xx6xemqq80pu.png


Для нашего примера возьмем чистый сервер Windows с диском С: на 60 ГБ под ОС и диском WDS на 300 ГБ для различных файлов WIM, которые нам понадобятся для установки Windows и Linux.

Этап 1: развертывание сервера WDS

  1. Установить на сервере Windows Deployment Services и IIS. Это можно сделать через Server Manager или с помощью PowerShell:
    Install-WindowsFeature –name Web-server -includemanagementtools
    Install-Windowsfeature –name WDS -includemanagementtools
    
  2. Затем нужно внести изменения в пул DHCP. В частности, можно добавить к нашему серверу еще NIC и настроить выделенную сеть, но я обычно так не делаю, а вместо этого настраиваю основной сервер DHCP — указываю дополнительные атрибуты WDS DHCP. Вот какие настройки я использую:

    cm3xqz8nlqljkix01-8vyiu0vam.png

    -Boot Server Host Name — ввожу IP-адрес сервера WDS.
    -Bootfile Name — указываю исполняемый файл WDS, который хочу запускать на клиенте.

    Остальные 3 настройки имеют стандартные значения для DHCP.

  3. На сервере WDS запустить мастер конфигурации и завершить настройку.
  4. Пара изменений, которые я могу посоветовать внести в сетап:

    — Можно интегрировать сервер с Active Directory, т.к. на этом этапе мы задаем настройки Windows, но я предпочитаю отдельно стоящий сервер:

    kxnhgpw0y7evzf4tko6p8_lmxsc.png

    Согласно указываемой настройке, он будет отвечать на запросы клиентских машин и не потребует никаких «танцев» с AD:

    qlq_uiumw_bypc5xx6xemqq80pu.png

    — Обычно я меняю путь с C:\RemoteInstall на E:\RemoteInstall, где E:  — это упомянутый выше второй диск, который я предназначил для файлов WIM, Linux и пр.

    hjufj-bn8ind4ojojxiavnj0lhe.png

  5. Затем нужно внести изменения в меню PXE — для этого понадобится запустить UI установки WDS, кликнуть правой кнопкой на нашем сервере и в его свойствах на вкладке Boot сменить опцию Require the user to press F12 key to continue the PXE boot на Always continue the PXE boot:

    txom6dcn1witdr4xupiijtg9zms.png

  6. После этого можно добавить файлы .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 во временный каталог и затем выполняем следующие шаги:

  1. Проверяем наличие файлов

    core\pxeLinux.0
    com32\menu\vesamenu.c32
    com32\modules\chain.c32

  2. Переименовываем файл pxeLinux.0 в pxeLinux.com.
  3. Копируем файлы в каталоги remoteinstall\boot\x64 и remoteinstall\boot\x86.
  4. В каталогах x86 и x64 переименовываем pxeboot.n12 в pxeboot.0
  5. Затем из командной строки запускаем следующие команды, чтобы поменять загрузчик на 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
    
  6. После этого в каталогах 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.

vo-2izy3qzd0qlcxksvejbe2gyo.png

Также можно включить работу по HTTPS.

Этап 4: добавление Linux
Теперь можно добавить возможность установки Linux. Обычно я выполняю вот такие шаги:

  1. Скачать самую «лёгкую» версию ISO с CentOS, смонтировать ISO и скопировать содержимое в каталог E:\web\centos\7.x\7.[version] (или другой с таким же понятным названием).
  2. После этого можно будет добавить, например, файл запуска (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.

  1. Аналогично этапу 4, нужно скопировать все файлы из образа VMware ISO в соответствующий каталог на нашем сервере WDS.
  2. Затем нужно отредактировать файл boot.cfg в каталоге VMware и убрать пробелы. Файл в итоге будет выглядеть так:

    h87kxczbaxdwgg3ezy2qo-i8u-m.png


Заключение


Возможно, кому-то вся эта процедура покажется излишней морокой –, но ее результат позволит использовать меню PXE для переключения на WDS и выбирать любую ОС Windows OS, поддерживающую файл WIM. Кроме того, его же можно будет использовать и для установки Linux и VMware. Вы также можете использовать другие программы на свой вкус, например, GParted или Memtest.

© Habrahabr.ru