25 июля 2014

Автоматизация разворачивания сервера автоматической установки «Astra Linux Special Edition»

Как я уже упоминал в первой части статьи, поняв объем необходимых операций для разворачивания сервера автоматической установки ОС, мы решили данный процесс автоматизировать(«заскриптовать»).  Поскольку нами активно используется ПО Ansible решили использовать его, с его помощью можно производить операции как локально, так и на удаленной машине. Ansible представляет собой интерпретатор YAML скриптов, подробности работы выходят за рамки данной статьи их можно при желании почитать здесь.

Итак цели, которые мы хотели достичь в ходе разработки:

  • возможность локального разворачивания и разворачивания по сети на удаленной машине;
  • автоматически на основе файла конфигурации устанавливать необходимые пакеты и конфигурировать их;
  • поддержка  возможности отдавать пакеты как через http так и через ftp;
  • возможность создавать назначать по MAC-адресу компьютера — специальную конфигурацию (preseed файл),  статический IP и имя узла.

Весь код лежит в репозитории astra_preseed_install у нас на Гитхабе.

Немного о настройке и внутреннем устройстве проекта astra_preseed_install

Проект состоит из файлов с доработанным netinst образом Astra Linux Special Edition,  YAML скриптов с командами и шаблонами конфигурационных файлов.

[symple_toggle title=»Как развернуть astra_preseed_install»]

  1. aptitude install ansible
  2. git clone https://github.com/laboratory50/astra_preseed_install.git
  3. правим под свои задачи конфигурационный файл groups_vars/all
  4. правим файл stage в котором указываем имя узла или IP-адрес компьютера, где будем настраивать сервер;
  5. запускаем ansible-playbook site.yml

В проекте есть файл README.

[/symple_toggle]

При разворачивании сервера автоматической установки на узле будут настроены и сконфигурированы Dnsmasq с tftp, Apache (если при конфигурации выбран http) или vsftpd (если выбран ftp). Если выбран тип ftp, то будет выполнено копирование репозитория с указанного cd  в каталог ftp сервера. Если вы не хотите создавать репозиторий при настройки конфигурации с ftp, можно вызвать команду разворачивания с тэгом —tags=no_make_rep.

Для разворачивания на локальной машине снимаем в файл site.yml комментарий со строки connection: local, если необходимо выполнить операции по разворачиванию из под sudo, тогда раскомментируйте строку  sudo: True в файле.

astra_preseed_install содержит готовые шаблоны preseed файлов:

  • preseed.cfg.j2 — для персональных компьютеров и с автоматической разметкой диска с LVM;
  • preseed.raid.cfg.j2 — для серверов с аппаратным RAID и объемом диска меньше 2 TB;
  • preseed.raid_gpt.cfg.j2 —  для серверов с аппаратным RAID и объемом диска больше 2 TB;
  • preseed.softraid.cfg.j2 — для серверов с программным RAID (soft, serial ata).

Естественно, раздел preseed файла с параметрами разбиения диска (опции partman), вы должны корректировать под параметры вашего аппаратного обеспечения. Свои шаблоны можно добавлять в подкаталог roles/common/templates.

Конфигурационный файл all располагается в каталоге groups_vars и содержит исчерпывающие комментарии для каждой настройки. Остановимся лишь некоторых важных моментах:

  • server_type: ‘значение’ — тут выбирается как будем отдавать пакеты и preseed, возможные значения http или ftp.
  • default_preseed:  ‘имя файла’ — тут выбирается стандартный preseed, если вы в переменной machines_by_mac не указали какому компьютеру какой preseed отдавать, то будет отдан этот.
  •  machines_by_mac —  массив записей следующего вида, где:
    • mac: ‘xx-xx-xx-xx-xx-xx’— MAC-адрес целевого компьютера, на который будет ставиться ОС;
    • hostname: ‘имя’ — имя узла, которое будет назначено на данный компьютер;
    • preseed: ‘имя файла’ — preseed файл, который будет использоваться в ходе установки на данный компьютер, необязательный параметр по-умолчанию будет использоваться default_preseed;
    • ip: ‘ip-адрес’ — который будет назначен данному компьютеру, необязательный параметр по-умолчанию будет настроен на dhcp.

Проект astra_preseed_install позволяет быстро развернуть сервер для установки ОС Astra Linux Special Edition, но сделав небольшие изменения его можно использовать и для других Дебьян-подобных дистрибутивов.

Stay tuned, мы на bitbucket и github!

0 комментариев

Что у нас
нового

Блог

Astra Linux Special Edition 1.6.11

29 августа 2022

Вышло оперативное обновление 2022-0829 (№ 11) для Astra Linux Special Edition 1.6.

Astra Linux Special Edition 1.7.2

19 августа 2022

Вышло оперативное обновление Astra Linux Special Edition № 2022-0819.

Наши
контакты

Связаться с нами

Телефон: 8 (812) 981-68-09
Электронная почта: team@lab50.net





    Заполняя данную форму, вы принимаете условия Соглашения об использовании сайта, и соглашаетесь
    с Правилами обработки и использования персональных данных