Алгоритм работы DSmanager

Материал из ISPWiki

Перейти к: навигация, поиск

Содержание

Установка ОС

  1. Удаляет все временные файлы, которые могли быть созданы для предыдущей переустановки или восстановления сервера.
  2. Создает запись в dhcpd.conf.
  3. Создает ссылку на загрузчик pxe с именем dsXXXX (где XXXX - это id сервера) в корне TFTP.
  4. Файл kernel из шаблона ОС или из сетевого шаблона, который будет использован для сетевой загрузки (initrd будет взят из того же каталога, что и kernel). Это сделано для загрузчика Linux. FreeBSD свое ядро берет по NFS (берется из сетевого шаблона).
  5. В каталоге DSconfig будет создан файл XX.XX.XX.XX.conf (где XX.XX.XX.XX - это IP адрес сервера) с настройками нового сервера.
  6. Если существует файл etc/authorized_keys, он будет скопирован в DSconfig/XX.XX.XX.XX.keys.
  7. MAC адрес сервера будет жестко привязан к его IP адресу (таким образом, IP сервера должен быть в одной сети с сервером, на котором стоит DSmanager)
  8. В файл /etc/exports будут добавлены строки для разрешения полного доступа с IP сервера до каталогов DSconfig, DStemplate и каталога с сетевым шаблоном (FreeBSD или Linux).
  9. Север будет перезагружен.

Дальнейшая работа производится скриптом /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 сервера). Его содержимое будет дописано в файл настроек без изменений.

Восстановление сервера

  1. Удаляет все временные файлы, которые могли быть созданы для предыдущей переустановки/восстановления сервера
  2. Создает запись в dhcpd.conf
  3. Запускает скрипт Clone.sh из корневого каталога сетевого шаблона. Он имеет следующие параметры:
    1. путь, куда надо скопировать файлы (этот каталог будет использован как корень при загрузки по NFS)
    2. путь, откуда надо скопировать файлы (каталог, где и расположен Clone.sh)
    3. пароль администратора (зашифрованный MD5)
    4. путь до файла /usr/local/ispmgr/etc/authorized_keys, если требуется установить ключи. Иначе отсутствует.
  4. Создает ссылку на загрузчик pxe с именем dsXXXX (XXXX - id сервера) в корне TFTP
  5. Файл kernel и initrd (если он есть) из сетевого шаблона, будут использованы для сетевой загрузки. Это сделано для загрузчика Linux. FreeBSD свое ядро берет по NFS согласно настройкам /boot/loader.conf.
  6. В файл /etc/exports будут добавлены строки для разрешения полного доступа с IP адреса сервера до каталога, куда Clone.sh скопировал данные (первый параметр).
  7. Сервер будет перезагружен.

Обновление шаблонов

Сетевые шаблоны используют механизм аналогичный шаблонам VDSmanager FreeBSD. Для их обновления или создания используется sbin/dtmpctl.

Шаблоны ОС - это небольшой набор файлов (образ диска - архив tgz). Поэтому он обновляется полностью одним tar архивом (зажимать через gzip бессмысленно, основной объем создает уже зажатый образ диска). В этом архиве может быть файл control.md5, в котором должны быть через пробел записаны пары: имя файла и контрольная сумма MD5 (по одному файлу в строке). В случае, если такой файл есть, файлы шаблона будут проверены прежде чем его будет можно использовать.

В обоих случаях в каталоге должен быть файл VERSION с номером версии шаблона.

Была ли эта информация полезной? Да | Нет
Личные инструменты