[Из песочницы] ERPXE как волшебная пилюля

Приветствую! На Хабре иногда мелькают статьи о PXE. Это достаточно удобная штука для быстрого разворачивания большого количества машин. Последнее время появились специализированные пакеты наподобие Cobbler или OpenQRM для управления парком серверов, но речь пойдёт не о них. Речь пойдёт о проекте ERPXE, предназначенном для обеспечения работоспособности сети компьютеров. Как создатели пишут о своём проекте — применить можно в любой по размерам компании. Прежде всего он позволяет управлять содержимым корня tftp. Делает это через систему плагинов, количество которых впечатляет, список — http://erpxe.org/Category: Plugins. Есть почти всё, что может понадобится и даже больше. Ну, а чего нет — то легко добавить.Разобраться с ERPXE легко, документирован достаточно хорошо. Попытаюсь описать процесс установки на FreeBSD, на сайте инструкции нет. В проекте рекомендуется распаковывать все архивы в корне, но для FreeBSD это не совсем соответствует идеологии. Распаковывать будем в /usr/local и править все что нужно. Учитывая, что NFS экспортирует файловую систему, то для tftpboot лучше сделать отдельную.

Если на сервере файловая система корня ZFS, то тогда создаём файловые системы для наших нужд и настраиваем дальше по мануалу. Если же UFS, тогда придётся экспортировать /usr для записи

zfs create -o compression=lz4 -o exec=off -o setuid=off -o mountpoint=/usr/local/tftpboot zroot/tftpboot zfs create -o compression=lz4 -o exec=off -o setuid=off -o mountpoint=/usr/local/images zroot/images zfs create -o compression=lz4 -o exec=off -o setuid=off -o mountpoint=/usr/local/images/dev zroot/images/dev Потом берём основной архив

http://www.erpxe.com/download/

Распаковываем его:

cd /usr/local tar -xzf erpxe.current.tar.gz Дальше настраиваем сервисы на работу с PXE, как обычно, DHCP & TFTP и для ERPXE нужно настроить NFS, HTTP и Samba. Предполагаю, что эти сервисы настроены и работают, нужно только внести изменения для ERPXE. Настройку сервисов делает скрипт tftpboot/bin/configure.sh. Но поскольку у нас не поддерживаемая операционная система, то ознакомимся с его содержанием и сделаем изменения руками.

DHCP & TFTP: Для dnsmasq нужны следующие строчки в конфиг.

dhcp-boot=pxelinux.0 tftp-root=/usr/local/tftpboot/ Рестартуем dnsmasq: service dnsmasq restart

NFS: Знакомимся с tftpboot/bin/setup/erpxe-exports. Директорию images мы создали раньше со всеми файловыми системами, создаём вспомогательного пользователя (adduser erpxe) и назначаем права (chown erpxe /usr/local/images/dev), добавляем строчки в /etc/export:

/usr/local/images -mapall=nobody -ro -network=192.168.1.0/24 /usr/local/images/dev -mapall=erpxe -network=192.168.1.0/24 /usr/local/tftpboot/er/shares -alldirs -mapall=nobody -ro -network=192.168.1.0/24 Обновляем список папок: service mountd reload

HTTP: Для апача нужно скопировать файл tftpboot/bin/setup/erpxe-httpd.conf в /usr/local/etc/apache24/sites/erpxe.conf и заменить пути на те, которые есть.

Options Indexes FollowSymLinks Order deny, allow Allow from 192.168.1.0/24 Deny from all

AliasMatch (? i)^/er (.*) /usr/local/tftpboot/er/shares$1 Перезапускаем service apache24 restart.

Samba: Добавляем шару erpxe по примеру в файле tftpboot/bin/setup/erpxe-smb.conf

[erpxe] path = /usr/local/tftpboot/er/shares/ comment = Guest access share browseable = yes read only = yes guest ok = yes Обновляем состояние: service samba restart

Можно пытаться загрузится.

В чистой установке уже присутствуют Memtest’ы, Hardware Detection Tool, NT Password Editor и др. Но, конечно, вся прелесть ERPXE в плагинах, для каждого из которых на wiki расписан процесс установки. Обычно это распаковка плагина и копирование файлов из образа в дерево tftpboot. Не буду дублировать информацию из вики сюда, единственно, стоит обратить внимание на то, что некоторые плагины требуют менять IP в файле меню.

После установки плагинов можете по сети проводить диагностику железа (Stresslinux, Inquisitor), бэкапиться (Clonezilla, Acronis True Image Home) и, конечно же, устанавливать любимые дистрибутивы (CentOS, Ubuntu).

© Habrahabr.ru