163 lines
9.7 KiB
Markdown
163 lines
9.7 KiB
Markdown
|
# Выпускная квалификационная работа по курсу "Системное и сетевое администрирование ОС Альт"
|
|||
|
|
|||
|
## Тема: Автоматизация развертывания служб каталога 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 командой
|
|||
|
|
|||
|
```bash
|
|||
|
ansible-galaxy collection install community.general
|
|||
|
```
|
|||
|
|
|||
|
## Подготовка шаблона Альт Сервер
|
|||
|
|
|||
|
Шаблон будет подготовлен вручную — конвертирован из виртуальной машины, которая будет предварительно настроена.
|
|||
|
|
|||
|
Виртуальная машина имеет следующие характеристики:
|
|||
|
|
|||
|
* ОЗУ: 2 Гб
|
|||
|
* ЦПУ: 2
|
|||
|
* Диск: 32 Гб
|
|||
|
* Диск CloudInit
|
|||
|
|
|||
|
остальные значения устанавливаются по-умолчанию. В качестве ОС используется Альт Сервер 10.1. При установке ОС используется профиль `Минимальная установка` с отмеченным пунктом `NetworkManager`, т. к. он необходим для работы CloudInit.
|
|||
|
|
|||
|

|
|||
|
|
|||
|
Рисунок 2 - Выбор компонентов ОС
|
|||
|
|
|||
|
После установки операционной системы необходимо выполнить обновление и установку дополнительных компонентов:
|
|||
|
|
|||
|
* обновление пакетов и ядра операционной системы
|
|||
|
|
|||
|
```bash
|
|||
|
apt-get update && apt-get dist-upgrade -y && update-kernel -y
|
|||
|
```
|
|||
|
|
|||
|
* установка дополнительных необязательных пакетов
|
|||
|
|
|||
|
```bash
|
|||
|
apt-get install -y qemu-guest-agent mc tmux htop tree
|
|||
|
```
|
|||
|
|
|||
|
* пакеты для работы CloudInit
|
|||
|
|
|||
|
```bash
|
|||
|
apt-get install -y cloud-init cloud-init-config-etcnet
|
|||
|
apt-get install -y cloud-utils-growpart cloud-utils
|
|||
|
```
|
|||
|
|
|||
|
* после установки пакетов CloudInit необходимо добавить соответствующие службы в автозагрузку
|
|||
|
|
|||
|
```bash
|
|||
|
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 сервера, т.к. в Рабочей станции он отключен
|
|||
|
|
|||
|
```bash
|
|||
|
systemctl enable --now sshd
|
|||
|
```
|
|||
|
|
|||
|
Следующие шаги идентичны тем, которые выполнялись при настройке сервера:
|
|||
|
|
|||
|
* обновление пакетов и ядра операционной системы
|
|||
|
|
|||
|
```bash
|
|||
|
apt-get update && apt-get dist-upgrade -y && update-kernel -y
|
|||
|
```
|
|||
|
|
|||
|
* установка дополнительных необязательных пакетов
|
|||
|
|
|||
|
```bash
|
|||
|
apt-get install -y qemu-guest-agent mc tmux htop tree
|
|||
|
```
|
|||
|
|
|||
|
* пакеты для работы CloudInit
|
|||
|
|
|||
|
```bash
|
|||
|
apt-get install -y cloud-init cloud-init-config-etcnet
|
|||
|
apt-get install -y cloud-utils-growpart cloud-utils
|
|||
|
```
|
|||
|
|
|||
|
* после установки пакетов CloudInit необходимо добавить соответствующие службы в автозагрузку
|
|||
|
|
|||
|
```bash
|
|||
|
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` с помощью команды:
|
|||
|
|
|||
|
```bash
|
|||
|
ansible-playbook deploy_vms_role.yml
|
|||
|
```
|
|||
|
|
|||
|
В результате выполнения команды в гипервизоре PVE будут созданы 5 виртуальных машин в соответствии со схемой стенда:
|
|||
|
|
|||
|
1. `alts1` - Основной контроллер домена
|
|||
|
2. `alts2` - Резервный контроллер
|
|||
|
3. `alts3` - Файловый сервер
|
|||
|
4. `ws` - Клиент, Рабочая станция
|
|||
|
5. `kws` - Клиент, Рабочая станция К
|
|||
|
|