Контроллер домена ALD Pro#
Развертывание контроллера домена ALD Pro с использованием коллекции astra.ald_pro из реестра Astra Automation Hub позволяет автоматизировать большую часть рутинных операций.
Описание сценария#
Роль astra.ald_pro.controller
из реестра коллекций Astra Automation Hub позволяет за несколько минут в автоматическом режиме развернуть контроллер домена ALD Pro.
Процесс развертывания контроллера домена ALD Pro состоит из следующих этапов:
Создание стенда.
В качестве стенда в этом руководстве используется ВМ VirtualBox, созданная с помощью Vagrant.
Она обладает следующими характеристиками:
количество ядер CPU – 4;
объем RAM, ГБ – 4;
объем хранилища, ГБ – 30;
операционная система – Astra Linux Special Edition 1.7.3 без графического интерфейса;
уровень защищенности ОС – максимальный («Смоленск»);
выключено разрешение имен с помощью служб хостовой машины.
Подготовка файлов Ansible:
requirements.yml
– зависимости;ansible.cfg
– настройки Ansible;inventory
– инвентарь;playbook.yml
– playbook, содержащий сценарии настройки управляемого узла;vars.yml
– значения переменных.
Настройка стенда с помощью Ansible.
Для запуска Ansible используется образ, описанный в документе Среда исполнения.
Развертываемый контроллер домена ALD Pro обладает следующими характеристиками:
Имя домена –
aldpro.example.com
.FQDN контроллера домена –
dc01.aldpro.example.com
.Учетные данные администратора домена:
название учетной записи пользователя –
admin
;пароль –
p@ssW0а!
.
Для подключения к стенду используется протокол SSH.
Подготовка к работе#
Подготовьте рабочее окружение:
Изучите описание коллекции astra.ald_pro. Обратите внимание на обязательные и опциональные переменные роли
astra.ald_pro.controller
.Подготовьте управляющий узел к работе с реестром Astra Automation Hub и стендом согласно инструкции.
Установите Vagrant и его расширение для работы с образами Astra Linux согласно инструкции.
Создайте каталог для хранения файлов проекта, например:
mkdir ~/aa-ald-pro/
Примечание
Далее этот каталог называется каталогом проекта. Все упомянутые ниже файлы следует создавать в этом каталоге, если явно не указано иное.
Согласно инструкции создайте пару ключей SSH, которая будет использоваться для подключения к ВМ.
Развертывание ВМ#
Для подготовки ВМ выполните следующие действия:
Создайте файл
Vagrantfile
со следующим содержимым:# frozen_string_literal: true Vagrant.configure('2') do |config| config.vm.box = 'alse-vanilla-max/1.7.3' # Имя бокса # Ссылка на образ config.vm.box_url = 'https://dl.astralinux.ru/vagrant/alse-vanilla-max%2F1.7.3' config.vm.provision 'file', source: '~/.ssh/deployment.pub', destination: '/home/vagrant/.ssh/deployment.pub' config.vm.provision 'shell', inline: 'cat /home/vagrant/.ssh/deployment.pub >> /home/vagrant/.ssh/authorized_keys' # Настройка параметров ВМ config.vm.define 'dc01' do |node| node.vm.hostname = 'dc01' # Короткое имя хоста # Настройки, специфичные для VirtualBox node.vm.provider 'virtualbox' do |vb| vb.cpus = 4 # Кол-во ядер CPU vb.memory = 4296 # Объем RAM, МБ vb.auto_nat_dns_proxy = false # Не использовать DNS-прокси vb.customize ['modifyvm', :id, '--natdnshostresolver1', 'off'] vb.customize ['modifyvm', :id, '--natdnsproxy1', 'off'] end # Параметры сети node.vm.network 'private_network', ip: '192.168.56.11', # Статический IP-адрес netmask: '255.255.255.0', # Маска подсети dhcp_enabled: false # Запрет использования DHCP node.vm.provision 'shell', inline: <<~SCRIPT cat <<EOF > /etc/dhcp/dhclient-enter-hooks.d/resolv make_resolv_conf () { true } EOF SCRIPT end end
В ALD Pro используется собственный DNS-сервер, поэтому необходимо:
Отключить разрешение имен через проксирование DNS-запросов в хостовую ОС:
Изменить настройки клиента DHCP таким образом, чтобы он не вносил изменений в конфигурационный файл
/etc/resolv.conf
.С этой целью в конце настройки ВМ выполняется сценарий, создающий в каталоге
/etc/dhcp/dhclient-enter-hooks.d/
файлresolv
. В этом файле содержится функция, выполняемая при формировании конфигурационного файла/etc/resolv.conf
. В данном случае она возвращает значениеtrue
, не выполняя никаких дополнительных действий.
Для создания и запуска ВМ с помощью Vagrant в каталоге проекта выполните команду:
vagrant up
Подготовка Ansible#
Подготовьте ресурсы, необходимые для использования Ansible.
Создайте файл
ansible.cfg
, содержащий настройки Ansible для проекта:[defaults] collections_path = collections host_key_checking = false ansible_python_interpreter = /usr/bin/python3 inventory = inventory
где
collections_path
– путь к каталогу с файлами коллекций.host_key_checking
– проверка ключей SSH при подключении к управляемым узлам. В данном случае она отключена, так как playbook будет запускаться внутри контейнера.ansible_python_interpreter
– версия Python, которую следует использовать на управляемых узлах.inventory
– путь к файлу инвентаря.
Создайте файл инвентаря
inventory
:[all] dc01 ansible_host=192.168.56.11 ansible_user=vagrant ansible_ssh_private_key_file=/root/.ssh/deployment
В этом файле содержатся настройки подключения к управляемому узлу
dc01
:Название учетной записи пользователя –
vagrant
.IP-адрес –
192.168.56.11
.Должен совпадать с IP-адресом, указанным в
Vagrantfile
.Путь к файлу приватного ключа SSH, используемого для подключения к ВМ.
Создайте файл
vars.yml
:--- aldpro_domain: aldpro.example.com aldpro_pdc_ip: 192.168.56.11 aldpro_pdc_name: dc01 aldpro_admin_password: p@ssW0rD!
При развертывании контроллера ALD Pro обязательно должны быть заданы:
имя домена;
IP-адрес и FQDN контроллера домена;
пароль администратора домена.
В файле
vars.yml
указанные параметры заданы через значения переменных ролиastra.ald_pro.controller
:aldpro_domain
– имя домена.aldpro_pdc_ip
– IP-адрес контроллера домена.Предупреждение
IP-адрес контроллера домена должен совпадать с IP-адресом ВМ, указанным в
Vagrantfile
.aldpro_pdc_name
– сетевое имя контроллера домена (при выполнении playbook автоматически расширяется до FQDN путем присоединения имени домена).aldpro_admin_password
– пароль администратора домена.
Создайте файл playbook
playbook.yml
:--- - name: Set up ALD Pro domain controller hosts: dc01 become: true vars_files: - vars.yml roles: - role: astra.ald_pro.controller
Создайте файл зависимостей Ansible
requirements.yml
:--- collections: - name: astra.ald_pro type: git version: 0.2.0 source: ssh://git@hub.astra-automation.ru:2222/aa-gca/ARFA/ald_pro.git
В этом файле указаны параметры подключаемой коллекции:
name
– название коллекции из реестра Astra Automation Hub, в данном случае –astra.ald_pro
.type
– способ установки. Для установки коллекций из реестра Astra Automation Hub используется Git.version
– версия используемой коллекции,0.2.0
.source
– ссылка на репозиторий Git, в котором хранится коллекция.
Запуск playbook#
Чтобы развернуть контроллер домена ALD Pro с параметрами, описанными в конфигурационном файле playbook.yml
, выполните в каталоге проекта следующие действия:
Установите необходимые ресурсы согласно зависимостям, определенным в файле
requirements.yml
:ansible-navigator exec \ --eei registry.astralinux.ru/aa/aa-base-ee \ --eev ~/.ssh/deployment:/root/.ssh/deployment \ --eev ~/.ssh/hub.astra-automation.ru:/root/.ssh/id_rsa \ -- ansible-galaxy install -r requirements.yml
Запустите playbook:
ansible-navigator run playbook.yml --eei registry.astralinux.ru/aa/aa-base-ee -m stdout
Для выполнения команд
ansible-navigator
использует среду исполнения, заданную аргументом--eei
.В терминал выводится сообщение о подключении к Astra Automation Hub:
Введите значение
yes
и нажмите Enter.Если приватный ключ SSH для доступа к реестру Astra Automation Hub защищен паролем, будет выведен запрос на его ввод:
Введите пароль и нажмите Enter. Дождитесь выполнения playbook. По окончании выполнения в терминал выводится строка вида:
Проверка работоспособности развернутой инфраструктуры#
Чтобы проверить корректность развертывания контроллера домена ALD Pro, выполните следующие действия:
Подключитесь к ВМ по SSH:
vagrant ssh
Проверьте статус служб контроллера домена:
sudo ipactl status
При успешном развертывании в терминал выводится сообщение вида:
Для отключения от ВМ выполните команду:
exit
Освобождение ресурсов#
Если созданная ВМ больше не нужна, для ее остановки и удаления в каталоге проекта выполните команду:
vagrant destroy --force
Особенности проекта#
Обратите внимание на следующие особенности проекта:
Опциональные и обязательные параметры роли
astra.ald_pro.controller
.Описание переменных роли в отдельном файле.
Заключение#
В этом сценарии вы познакомились с основными шагами по развертыванию контроллера домена ALD Pro с использованием коллекции из реестра Astra Automation Hub. Из всей последовательности шагов, которые вы прошли, важно выделить следующие действия:
Подключение коллекции Ansible из реестра Astra Automation Hub.
Настройка параметров роли в отдельном файле и подключение его в playbook.