четверг, 9 июля 2015 г.

Загрузочный сервер — как загрузочная флешка, только сервер и по сети / Блог компании ServerClub / Хабрахабр


Загрузочный сервер — как загрузочная флешка, только сервер и по сети

Загрузочная флешка с набором нужного софта — замечательный инструмент системного администратора. Казалось бы, что может быть лучше? А лучше может быть загрузочный сервер!

Представьте, вы выбрали в BIOS загрузку по сети и можете установить ОС/вылечить компьютер от вирусов/реанимировать диски/протестировать ОЗУ/etc с PXE Boot сервера, ведь это куда удобнее, нежели бегать с флешкой от машины к машине.
А в случае большого компьютерного парка, такой инструмент и вовсе незаменим.

Вот такое меню встречает нашу команду инженеров при загрузке с PXE



Под катом вас ждет описание всех настроек, а так же небольшой сюрприз.

Начало


Возьмем за основу, что свежеустановленный Debian Wheezy уже весело подмигивает нам консолью.
Подготовим базу для дальнейших манипуляций. Установить и настроить нам потребуется:

  1. TFTP сервер
  2. Samba
  3. Syslinux
  4. DHCP сервер
  5. HTTP сервер
  6. NFS сервер


1. TFTP
  

приведем конфиг /etc/default/tftpd-hpa к виду
TFTP_USERNAME="tftp"  TFTP_DIRECTORY="/srv/tftp"   TFTP_ADDRESS="0.0.0.0:69"  TFTP_OPTIONS="--secure  -l -v -m /etc/tftpd.remap"   

и поместим в /etc/tftpd.remap вот такую строку
rg \\ /

UPD, дополнение от читателя Aleksey Shipilev
Повыдирал себе волос, пока отдебажил tftp.
Что на ThinkPad X201i, что в VirtualBox загрузка отваливалась с:
PXE-E32: TFTP Open timeout

Судя по всему, PXE агенты умудрились быть не полностью совместимыми, полечилось добавлением "-r blksize":
TFTP_OPTIONS="--secure -l -v -r blksize"


2. Samba

В конец файла /etc/samba/smb.conf добавим информацию о папке, где будут лежать инсталляционные файлы Windows.
[images]  comment = images  path = /srv/tftp/images  create mask = 0660  directory mask = 0771  writable = yes  guest ok=yes  

Cоздаем папку, даем права и рестартим самбу
      


3. Syslinux
Скачиваем и заливаем в корень TFTP сервера все необходимое
              

Перейдем к настройке
      

Создадим конфиг основного меню и внесем начальные настройки
  ui vesamenu.c32                    PROMPT 0  menu background background.jpg  menu title ServerClub PXE boot menu    LABEL bootlocal     menu label Boot from first HDD     kernel chain.c32     append hd0 0     timeout 120   TEXT HELP  The system will boot after the time is up   ENDTEXT  


4. DHCP
  

дефолтный конфиг переместим, создадим вместо него свой и перезапустим DHCP демон
    option domain-name-servers 8.8.8.8, 8.8.4.4;  option ip-forwarding on;  default-lease-time 60;  min-lease-time 120;  max-lease-time 300;  authoritative;  ddns-update-style interim;  log-facility local7;  shared-network PXE-Netwotk {    subnet 10.0.10.0 netmask 255.255.255.0 {    range 10.0.10.10 10.0.10.254;    option routers 10.0.10.1;    option subnet-mask 255.255.255.0;    option domain-name-servers 8.8.8.8, 8.8.4.4;    filename "pxelinux.0";    next-server 10.0.10.1;    option root-path "10.0.10.1:/srv/tftp/";    }  }    

Спойлер для тех, у кого в роли DHCP сервера выступает MikroTik

Спойлер для тех у кого DHCP на Cisco

Так же стоит заметить, что в данной инсталляции у севера две сетевые карты и он является еще и шлюзом в интернет.
Поэтому необходим еще ряд нехитрых манипуляций


5. HTTP
Пока просто установим, а зачем он нам понадобился будет понятно далее по тексту.
  


6. NFS
Ровно так же как и предыдущий пункт.
  

Если все сделано правильно, то при загрузке какой-либо машины с этого DHCP/PXE/TFTP сервера мы увидим следующее:



Основа готова!

Двигаемся далее.


Научим сервер устанавливать различные ОС


Для установки нам будут доступны:

  1. Windows 2008R2/20012R2
  2. Debian 6/7
  3. Centos 6/7
  4. Ubuntu 12.04/12.10/14.04/14.10
  5. FreeBSD 9.2/10.1
  6. VMware ESXi 5.0/5.5


Структура меню, а следовательно и файл /srv/tftp/pxelinux.cfg/default притерпели изменения.
Теперь конфиг главного меню PXE сервера теперь выглядит так

Листинг директории /srv/tftp/pxelinux.cfg/
root@pxe:/srv/tftp/pxelinux.cfg  total 32  -rw-r--r-- 1 tftp tftp  475 Фев 17 18:04 bsd  -rw-r--r-- 1 tftp tftp  881 Фев 17 18:00 default  -rw-r--r-- 1 tftp tftp 1316 Фев 17 18:01 linux  -rw-r--r-- 1 tftp tftp  363 Фев 17 18:03 vmware  -rw-r--r-- 1 tftp tftp  312 Фев 18 00:01 windows  

Под спойлером содержимое конфига каждого из подпунктов меню представленных выше

Пути к папкам, где лежат установочные файлы для каждой из ОС, описаны относительно корня TFTP сервера, т.е. /srv/tftp.
Например для FreeBSD указано
LABEL FreeBSD-10.1-x64          kernel memdisk          initrd freebsd/10/mfsbsd-se-10.1-RELEASE-amd64.iso          append iso raw  

следовательно в корне TFTP нужно создать папки freebsd/10/, при этом обратите внимание на права
ls -l /srv/tftp/freebsd/10/  total 193780  -rw-r--r-- 1 tftp tftp 198430720 Фев 17 18:17 mfsbsd-se-10.1-RELEASE-amd64.iso  

У всех должно быть право на чтение — это правило справедливо для всех файлов отдаваемых по TFTP.
И еще пара слов о установке FreeBSD.
Логин / пароль для входа в загружаемый iso: root / mfsroot(либо root без пароля).
Плюс пара примеров скриптов инсталяции FreeBSD на ZFS:
1. RAID6 из 4-х дисков.
2. RAID1 из 2-х дисков.

О том как подготовить Windows к установке с PXE мы писали ранее.
Различие с данной инсталляцией составляет лишь то, что здесь мы можем установить и Windows 2008R2 и Windows 2012R2(впрочем и Windows 7/8 тоже, нужно только подготовить файлы дистрибутива и winpe соответствующим образом). После загрузки winpe мы монтируем папку /srv/tftp/images/, где содержаться файлы для установки ОС от Microsoft:
ls -l /srv/tftp/images/  total 8  drwxr-xr-x 6 root root 4096 Фев 17 22:19 w2k12r2  drwxr-xr-x 7 tftp tftp 4096 Фев 17 19:05 w2k8r2  

и запускаем нужный инсталятор.
Для автоматизации, через startnet.cmd, я набросал вот такое меню:



Теперь осталось разобраться с VMware.
Как вы заметили, конфиг для установки гипервизоров несколько отличается от остальных — именно тут нам и понадобится HTTP сервер.
В /var/www создадим папки vmw5.5, vmw5.0, а в папках сделаем симлинки на конфиг
              

О том как подготовить, например, Debian к установке с PXE написано здесь, но я на этом останавливаться не стану.


Добавим способность загружать различные дисковые утилиты и тест памяти


Данный раздел будет содержать:
  1. Memtest86+
  2. Clonezilla-live
  3. SystemRescueCD
  4. MHDD

Конфиги разместились здесь

А я расскажу зачем мы ставили еще и NFS сервер.
Как видно из конфига загрузки SystemRescueCD, необходимые этому LiveCD файлы он подтягивает монтируя каталог по протоколу NFS. Сервер уже установлен, остается только отредактировать /etc/exports и перезапустить серверный демон.
  /srv/tftp/SystemRescueCD/ 10.0.10.1/255.255.255.0(ro,no_subtree_check,all_squash,insecure,anonuid=1000,anongid=1000)    

Предполагаю у вас возник резонный вопрос — «Что тут делает LiveCD, если для них есть отдельный пункт?»
SystemRescueCD содержит массу полезных программ для работы с диском(например таких как GParted и testdisk) и поэтому он доступен и здесь и в LiveCD.


LiveCD


В набор наших LiveCD войдут:
  1. Debian 7 LiveCD
  2. HirensBootCD
  3. Trinity Rescue Kit CD
  4. SystemRescueCD
  5. Plop Live


Несколько слов о выбраных LiveCD.
Debian 7 LiveCD
Этот CD — сборка одного из наших инженеров, включающая в себя следующее:



Логин / пароль: root / ServerClub

HirensBootCD
Едва ли нуждается в представлении, содержит множество полезных утилит.
Подробнее можно ознакомиться здесь.
Грузится достаточно долго, не работает MiniXP и Linux. Остальные утилиты доступны для использования.

Trinity Rescue Kit CD
Со слов разработчиков, создан для восстановления ОС Windows.
Содержит утилиты для сброса паролей, антивирусы, программу для клонирования «компьютера» по сети(при чем на несколько компьютеров одновременно), а так же многое другое.
Подробнее здесь.

SystemRescueCD
Основан на Gentoo, предназначен для восстановления Linux систем.
Включает в себя большое количество всевозможных программ для администрирования, со списком можно ознакомится по ссылке.

Plop Live
LiveCD с тремя полноценными DE на выбор, а так же необходимым админским софтом.



Антивирусы


  1. Kaspersky Rescue Disk 10


  2. AVG Rescue CD


В отдельном представлении оба антивируса не нуждаются.
О Kaspersky Rescue disk подробнее можно прочесть здесь.
С описанием AVG Recsue CD вас ознакомит данный url.

Итоговый конфигурационный файл основного меню, а так же файл меню антивирусов



Заключение, оно же и сюрприз


На протяжении статьи я сознательно не давал объяснений где взять и как подготовить контент, потому как действия эти весьма тривиальны и только перегрузили бы текст.

В качестве сюрприза предлагаю вам два варианта нашей сборки, доступные по ссылкам ниже:
  1. Архив со всем контентом /srv/tftp (ссылка на торрент файл, прямая ссылка)
  2. Архив всей ОС (ссылка на торрент файл, прямая ссылка)

В первом случае необходимо самостоятельно подготовить сервер(в этом поможет глава «Начало» данного эпоса), разархивировать содержимое архива и внести корректировки сообразно реалиям вашей среды.

Второй случай подразумевает установку на голое железо или виртуальную машину.
Вкратце шаги по развертыванию сборки из полного архива ОС будут такими:
1. Загрузиться с Linux LiveCD.
2. Разметить диск и отформатировать разделы.
3. Примонтировать "/" раздел.
4. Распаковать архив.
5. Установить загрузчик.
6. Перезагрузиться.
7. Настроить ОС в соответствии вашей сети и начать пользоваться.
Логин / пароль: root / ServerClub.
ВАЖНО: Если в вашей сети есть работающий dhcp сервер, то перед запуском нашей сборки отключите в ней автостарт dhcp.

Полезные ссылки


Как подготовить Kaspersky Rescue disk 10 для загрузки с PXE
Wiki syslinux
Как подготовить ESXi для установки с PXE
C PXE не грузится интсаллятор ESXi. Решение
От чего с PXE не грузится интсаллятор ESXi. Решение

За сим заканчиваю, благодарю за внимание!


Для тех, у кого нет аккаунта на Хабре.
Если у вас возникнут вопросы/замечания, то пишите мне на почту — er[dog]serverclub.com.          

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

Отправить комментарий