Настройка сетевой установки под себя
Вступление
При установке любого дистрибутива ALT Linux (в том числе и входящего в ПСПО), чуть менее чем все шаги установки (кроме разметки диска) после успешного её завершения будут записаны в файл /root/autoinstall.scm, который с незначительными модификациями (добавлением инструкций разметки диска) можно использовать для автоматической установки этого дистрибутива с этими настройками. Но зачастую выбор настроек, предлагаемых языком autoinstall.scm, недостаточен, и необходимо вставить в процесс установки что-то своё, родное. Для этого есть как минимум два пути:
- Первый --- формировать собственный дистрибутив, нужные изменения будут встроены в который сразу. Зто задача несложная, потому что такой опыт у компании ALTLinux есть. В принципе, для специалиста это несложно. Но пересборка образов дистрибутива занимает довольно много времени --- а если хочется поэкспериментировать с разными настройками?
- Второй вариант --- каким-либо образом модифицировать имеющиеся установочные файлы, которые хранятся внутри инсталляционного образа. Задача немного более хитрая, но решаемая --- с оговоркой, что установка модифицированного дистрибутива будет происходить только по сети (а сетевая установка при помощи загрузки по PXE --- довольно простая задача).
Собственно говоря, минимальной необходимостью для сетевой установки являются две машины, соединённые в сеть, причём: одна из них умеет загружаться по PXE, а на другой настроены некоторые службы и лежат некоторые файлы. Некоторыми службами являются демоны nfsd, tftpd, dhcpd, xinetd и rsync, а файлами --- развёрнутый установочный образ дистрибутива с теми самыми некоторыми модификациями.
В общих чертах о процессе
Загрузка "клиентской" машины, то есть той, на которую устанавливается система, будет происходить следующим образом. Первое --- при включении она получает от DHCP-сервера (предоставляемого dhcpd) специальный пакет с указанием её адреса и адресом к образу загрузчика pxelinux.0. Далее, этот самый pxelinux.0 скачивается по TFTP (его отдаёт, как нетрудно догадаться, tftpd), и сразу же начинает исполняться, а именно: загружает ядро, и монтирует по NFS необходимый для установки каталог (соответственно, раздаваемый unfsd). После чего запускается Alterator, в зависимости от настроек PXE, в ручном или автоматическом режиме, и начинает установку.
Маленькие модификации
Немного о том, как устроен установочный диск дистрибутива ALTLinux. К примеру, посмотрим в корень установочного DVD с ПСПО Линукс Мастер:
altinst ALTLinux Documentation isolinux license.ru.txt license.txt Metadata rescue RPM-GPG-KEY
Самое интересное всмысле модификации установки находится в двух местах --- каталоге Metadata и файле altinst. В первом могут находиться конфигурационные файлы Alterator для автоматической установки (тот самый autoinstall.scm и произвольные другие файлы, которые могут потребоваться установщику (в частности, именно в этом каталоге должны находиться файлы, которые могут потребоваться модифицирующим скриптам), среди них --- описание разбивки диска при установке), а второй --- это образ файловой системы squashfs, который являет собой полную систему, из котороый, собственно, и исполняется Alterator, производящий установку.
У любопытного читателя, наверное, возник вопрос --- нельзя ли дописать желаемые модификации в исполняемый установщиком autoinstall.scm? Ответ на этот вопрос скорее отрицателен, ибо в autoinstall.scm записываются только те действия, которые может выполнять установщик, как-то: разбивка диска, настройка и установка загрузчика, установка групп пакетов. Вставить собственный код непосредственно в этот файл, к сожалению, невозможно.
Но в процессе своей работы --- вернее даже, перед её завершением --- установщик выполняет скрипты, которые находятся в /usr/share/alterator/postinstall.d/, просто в порядке их нахождения в этом каталоге.
Этот каталог располагается внутри образа squashfs, из которого разворачивается минимальная система для исполнения Alterator, а пересборка оного образа не сильно лучше пересборки всего дистрибутива.
Обходная хитрость --- распаковать образ в одноимённый каталог в том же месте в дереве. Тогда установка будет происходить с использованием этого каталога вместо образа. А в этот-то каталог (вернее, в его подкаталог usr/share/alterator/postinstall.d/) и стоит внедрять всякие модификации.
Пример модификации
Модификациями в данном случае будут сценарии на shell, которые работают с некоторыми определёнными установщиком функциями и созданными установщиком каталогами. Для примера рассмотрим сценарий, задача которого --- распаковать в целевую систему некоторый архив:
#!/bin/sh -efu . install2-init-functions cp-metadata $destdir/root/synchrone.tar exec_chroot tar xf /root/synchrone.tar --no-overwrite-dir --no-same-owner -C / exec_chroot chkconfig --add synchrone
Строка . install2-init-functions включает в сценарий заданные установщиком функции и переменные. Среди которых cp-metadata --- позволяет взять данные из каталога Metadata, о котором было сказано выше, и exec_chroot --- выполнить команду внутри целевой системы. Переменная destdir определяет каталог, в котором находится целевая система в процессе установки.
Развертывание компьютерного класса — Подробная инструкция по разворачиванию конкретного решения на базе подобных модификаций.
Сведения о ресурсах
Готовность (%) |
Продолжительность (ак. ч.) |
Подготовка (календ. ч.) |
Полный текст (раб. д.) |
Предварительные знания |
Level |
Maintainer |
Start date |
End date |
90 |
1 |
1 |
1 |
|
1 |
|
|