Алгоритм работы DSmanager
Материал из ISPWiki
Содержание |
Установка ОС
- Удаляет все временные файлы, которые могли быть созданы для предыдущей переустановки или восстановления сервера.
- Создает запись в dhcpd.conf.
- Создает ссылку на загрузчик pxe с именем dsXXXX (где XXXX - это id сервера) в корне TFTP.
- Файл kernel из шаблона ОС или из сетевого шаблона, который будет использован для сетевой загрузки (initrd будет взят из того же каталога, что и kernel). Это сделано для загрузчика Linux. FreeBSD свое ядро берет по NFS (берется из сетевого шаблона).
- В каталоге DSconfig будет создан файл XX.XX.XX.XX.conf (где XX.XX.XX.XX - это IP адрес сервера) с настройками нового сервера.
- Если существует файл etc/authorized_keys, он будет скопирован в DSconfig/XX.XX.XX.XX.keys.
- MAC адрес сервера будет жестко привязан к его IP адресу (таким образом, IP сервера должен быть в одной сети с сервером, на котором стоит DSmanager)
- В файл /etc/exports будут добавлены строки для разрешения полного доступа с IP сервера до каталогов DSconfig, DStemplate и каталога с сетевым шаблоном (FreeBSD или Linux).
- Север будет перезагружен.
Дальнейшая работа производится скриптом /etc/rc.local из сетевого шаблона.
Настройки нового сервера
Этот файл содержит набор настроек. Предполагается, что он будет использован как shell script. При этом будут установлены следующие переменные:
- IMAGE - имя шаблона ОС (имя каталога, который его содержит в папке DStemplate)
- NAME - имя сервера (hostname)
- IP - IP адрес сервера (в принципе, избыточное поле, необходимо знать IP, чтобы понять, какой конфиг использовать)
- PASSWORD - пароль администратора (зашифрованный с использованием MD5)
- ID - ID сессии DSmanager (используется, чтобы сервер мог сообщить об окончании установки. Это необходимо, чтобы DSmanager удалил запись в dhcpd.conf. Иначе после перезагрузки сервер будет переустановлен заново)
- NETMASK - маска сети
- GATEWAY - адрес шлюза
- SUBNET - адрес сети, в которой находится IP адрес сервера (тоже избыточное поле, но скриптом очень неудобно вычислять такие значения)
- BROADCAST - адрес для широковещательных запросов (тоже избыточно. Используется для настроек некоторых дистрибутивов Linux)
- LOCALTIME - часовой пояс (имя файла в каталоге /usr/share/zoneinfo)
- DISK=default - как разбить диск на логические разделы. default - разбивка "по умолчанию", как правило одним большим разделом. Если этого параметра нет, размеры и имена разделов были заданы вручную. см. следующие 2 параметра.
- DISK_SIZE - размеры всех дисков через пробел (* - использовать все оставшееся свободное место)
- DISK_LABEL - точки монтирования через пробел (swap - раздел подкачки)
- Дополнительно можно создать файл var/dsconf/XXXX (где XXXX - id сервера). Его содержимое будет дописано в файл настроек без изменений.
Восстановление сервера
- Удаляет все временные файлы, которые могли быть созданы для предыдущей переустановки/восстановления сервера
- Создает запись в dhcpd.conf
- Запускает скрипт Clone.sh из корневого каталога сетевого шаблона. Он имеет следующие параметры:
- путь, куда надо скопировать файлы (этот каталог будет использован как корень при загрузки по NFS)
- путь, откуда надо скопировать файлы (каталог, где и расположен Clone.sh)
- пароль администратора (зашифрованный MD5)
- путь до файла /usr/local/ispmgr/etc/authorized_keys, если требуется установить ключи. Иначе отсутствует.
- Создает ссылку на загрузчик pxe с именем dsXXXX (XXXX - id сервера) в корне TFTP
- Файл kernel и initrd (если он есть) из сетевого шаблона, будут использованы для сетевой загрузки. Это сделано для загрузчика Linux. FreeBSD свое ядро берет по NFS согласно настройкам /boot/loader.conf.
- В файл /etc/exports будут добавлены строки для разрешения полного доступа с IP адреса сервера до каталога, куда Clone.sh скопировал данные (первый параметр).
- Сервер будет перезагружен.
Обновление шаблонов
Сетевые шаблоны используют механизм аналогичный шаблонам VDSmanager FreeBSD. Для их обновления или создания используется sbin/dtmpctl.
Шаблоны ОС - это небольшой набор файлов (образ диска - архив tgz). Поэтому он обновляется полностью одним tar архивом (зажимать через gzip бессмысленно, основной объем создает уже зажатый образ диска). В этом архиве может быть файл control.md5, в котором должны быть через пробел записаны пары: имя файла и контрольная сумма MD5 (по одному файлу в строке). В случае, если такой файл есть, файлы шаблона будут проверены прежде чем его будет можно использовать.
В обоих случаях в каталоге должен быть файл VERSION с номером версии шаблона.
