ERPXE как волшебная пилюля

в 14:18, , рубрики: pxe

Приветствую!

На Хабре иногда мелькают статьи о 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 и заменить пути на те, которые есть.

<Directory "/usr/local/tftpboot/er/shares/">
    Options Indexes FollowSymLinks
    Order deny,allow
        Allow from 192.168.1.0/24
        Deny from all
</Directory>

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).

Автор: Alet

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js