Go to file
Долгий Артём cc31c6f414 add check dc play 2023-08-11 14:50:14 +03:00
ansible add ansible role 2023-08-09 11:51:39 +03:00
ansible_deploy_dc add check dc play 2023-08-11 14:50:14 +03:00
img add ansible role 2023-08-09 11:51:39 +03:00
readme.md add ansible role 2023-08-09 11:51:39 +03:00

readme.md

Выпускная квалификационная работа по курсу "Системное и сетевое администрирование ОС Альт"

Тема: Автоматизация развертывания служб каталога Active Directory

Разворачивается следующая конфигурация:

  • Основной контроллер домена (Альт Сервер)
  • Резервный контроллер домена (Альт Сервер)
  • Файловый сервер (Альт Сервер) в составе домена (службы NFS и SMB)
  • Клиентский узел 1 (Альт Рабочая станция)
  • Клиентский узел 2 (Альт Рабочая станция К).

Тестируются: определение расположения служб домена, создание доменного пользователя, получение билета средствами Kerberos, доступность NFS и SMB- служб сервера при kerberos-аутентификации, успешное проведение репликации между контроллерами. Графический вход доменных пользователей на клиентские узлы. Эмулируется сбой одного из контроллеров, проверяется работоспособность окружения с оставшимся контроллером. Возможно успешность применения групповых политик (включение/выключение определенной службы, убедиться что служба выключилась)


Описание стенда

В основе стенда используется узел с установленной системой Альт Сервер виртуализации 10.1, в качестве гипервизора - решение PVE.

Схема стенда

Рисунок 1 - Схема стенда

Для доступа к системе виртуализации и выполнения задач автоматизированной настройки и запуска скриптов используется узел с ОС Альт Рабочая станция 10.1 altcl (10.1.1.20).

Предварительная настройка

Для подготовки окружения будет использован Ansible, запускаться задания будут с узла altcl (10.1.1.20).

Для работы Ansible с гипервизором PVE, написан соответствующий модуль proxmox_kvm. В свою очередь, для работы модуля proxmox_kvm на узле виртуализации, необходимо установить пакеты requests и proxmoxer. В репозитории Альт это пакеты python3-module-proxmoxer, python3-module-requests.

Т. к. модуль proxmox_kvm разработан сообществом, на узле altcl (10.1.1.20) необходимо установить поддержку community модулей ansible командой

ansible-galaxy collection install community.general

Подготовка шаблона Альт Сервер

Шаблон будет подготовлен вручную — конвертирован из виртуальной машины, которая будет предварительно настроена.

Виртуальная машина имеет следующие характеристики:

  • ОЗУ: 2 Гб
  • ЦПУ: 2
  • Диск: 32 Гб
  • Диск CloudInit

остальные значения устанавливаются по-умолчанию. В качестве ОС используется Альт Сервер 10.1. При установке ОС используется профиль Минимальная установка с отмеченным пунктом NetworkManager, т. к. он необходим для работы CloudInit.

Рисунок 2 - Выбор компонентов ОС

После установки операционной системы необходимо выполнить обновление и установку дополнительных компонентов:

  • обновление пакетов и ядра операционной системы
apt-get update && apt-get dist-upgrade -y && update-kernel -y
  • установка дополнительных необязательных пакетов
apt-get install -y qemu-guest-agent mc tmux htop tree
  • пакеты для работы CloudInit
apt-get install -y cloud-init cloud-init-config-etcnet
apt-get install -y cloud-utils-growpart cloud-utils
  • после установки пакетов CloudInit необходимо добавить соответствующие службы в автозагрузку
systemctl enable cloud-init-local
systemctl enable cloud-init
systemctl enable cloud-config
systemctl enable cloud-final

Виртуальная машина готова, её необходимо выключить и конвертировать в шаблон.

Подготовка шаблона Альт Рабочая станция и Альт Рабочая станция К

Как и шаблон для сервера, шаблоны виртуальных машин Рабочая станция и Рабочая станция К также подготовлены вручную — конвертированы из соответствующих, предварительно настроенных виртуальных машин.

Виртуальные машины имеют следующие характеристики:

  • ОЗУ: 2 Гб
  • ЦПУ: 2
  • Диск: 32 Гб
  • Диск CloudInit

остальные значения устанавливаются по-умолчанию. В качестве ОС используются Альт Рабочая станция 10.1 и Альт Рабочая станция К 10.1 соответственно. При установке операционной системы задаются значения, предлагаемые установщиком.

После установки операционной системы необходимо выполнить обновление и установку дополнительных компонентов:

  • включение SSH сервера, т.к. в Рабочей станции он отключен
systemctl enable --now sshd

Следующие шаги идентичны тем, которые выполнялись при настройке сервера:

  • обновление пакетов и ядра операционной системы
apt-get update && apt-get dist-upgrade -y && update-kernel -y
  • установка дополнительных необязательных пакетов
apt-get install -y qemu-guest-agent mc tmux htop tree
  • пакеты для работы CloudInit
apt-get install -y cloud-init cloud-init-config-etcnet
apt-get install -y cloud-utils-growpart cloud-utils
  • после установки пакетов CloudInit необходимо добавить соответствующие службы в автозагрузку
systemctl enable cloud-init-local
systemctl enable cloud-init
systemctl enable cloud-config
systemctl enable cloud-final

Виртуальные машины готовы, их необходимо выключить и конвертировать в шаблон.

Разворачивание группировки виртуальных машин

Для автоматизированного развёртывания виртуальных машин на гипервизор PVE используется ansible роль deploy_vms_role.yml.

Стоит обратить внимание, что при создании виртуальных машин из шаблонов, с помощью механизма CloudInit задаются уникальные IP адреса, имена хостов, а также пароль пользователя root. Кроме этого, также с помощью CloudInit в виртуальные машины копируется ssh ключ. Т.к. на этапе развёртывания CloudInit может взаимодействовать только с файловой системой гипервизора, ssh ключ, который копируется в виртуальные машины, необходимо заранее подготовить и сохранить в файловой системе гипервизора /root/.ssh/ с именем, указанным в переменной key_name

Процесс создания группировки виртуальных машин запускается из директории ansible с помощью команды:

ansible-playbook deploy_vms_role.yml

В результате выполнения команды в гипервизоре PVE будут созданы 5 виртуальных машин в соответствии со схемой стенда:

  1. alts1 - Основной контроллер домена
  2. alts2 - Резервный контроллер
  3. alts3 - Файловый сервер
  4. ws - Клиент, Рабочая станция
  5. kws - Клиент, Рабочая станция К