ALD Pro#

ALD Pro – это набор сетевых служб сервера Astra Linux для организации централизованного управления ИТ-инфраструктурой. Развертывание домена ALD Pro с использованием коллекции astra.ald_pro из реестра Automation Hub позволяет автоматизировать большую часть рутинных операций.

Далее описана коллекция astra.ald_pro версии 6.8.0. Состав переменных в других версиях коллекции отличается, поэтому его сверяют с файлом README.md используемой версии.

Структура#

Домен ALD Pro может состоять из контроллера домена, его реплик, узлов с дополнительными службами домена и клиентов домена. Для настройки каждого компонента существует отдельная роль. Также в состав коллекции входит служебная роль astra.ald_pro.common, которая используется другими ролями.

Далее приводится пример использования следующих ролей:

  • astra.ald_pro.controller;

  • astra.ald_pro.replica;

  • astra.ald_pro.client.

Параметры настройки#

Для настройки параметров домена необходимо присвоить соответствующие значения переменным роли.

Роль astra.ald_pro.controller#

Роль astra.ald_pro.controller используется для настройки контроллера домена ALD Pro.

Переменные роли:

  • aldpro_global_forwarders – IP-адреса DNS-серверов, используемых для конвертации доменных имен за пределами домена.

    Значение по умолчанию:

    • 8.8.8.8;

    • 8.8.4.4.

  • aldpro_server_minimal_memory_mb – минимальное количество мегабайт оперативной памяти, необходимое для развертывания служб контроллера домена ALD Pro.

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

    Значение по умолчанию: 4096 (4 ГБ).

  • aldpro_enable_syncer – установка модуля синхронизации aldpro-syncer.

    Этот модуль необходим для использования расширенных функций интеграции с доменом Microsoft Active Directory.

    Значение по умолчанию: true.

  • aldpro_enable_gc – установка модуля глобального каталога aldpro-gc.

    Этот модуль необходим, если используется топология из контроллера домена и нескольких реплик. Службы, предоставляемые этим модулем, выполняют синхронизацию данных пользователей между контроллером домена и его репликами.

    Значение по умолчанию: true.

Роль astra.ald_pro.replica#

Роль astra.ald_pro.replica используется для настройки реплик контроллера домена ALD Pro.

Переменные роли:

  • aldpro_pdc_name – краткое имя контроллера домена.

    Например, если FQDN контроллера домена – dc1.moscow.example.com, то краткое имя – dc1.

Развертывание реплики происходит в два этапа:

  1. развертывание служб клиента домена;

  2. преобразование клиента домена в реплику.

Если службы клиента домена уже настроены, этот этап развертывания реплики можно пропустить. Для этого необходимо выполнить следующие действия:

  1. Добавить в сценарий для соответствующего задания тег replica, например:

    ---
    - name: Enrolling ALD Pro replica
      hosts: replicas
      become: true
      tags: replica
      roles:
        - astra.ald_pro.replica
    
  2. Запустить набор сценариев с тегом replica.

    ansible-navigator run playbook.yml -i inventory.ini -t replica -m stdout
    

Роль astra.ald_pro.client#

Роль astra.ald_pro.client используется для настройки клиентов домена ALD Pro.

Переменные роли:

  • aldpro_pdc_ip – IP-адрес контроллера домена, например 192.168.56.10.

  • aldpro_pdc_name – краткое имя контроллера домена, например dc01.

Роль astra.ald_pro.common#

Переменные роли astra.ald_pro.common:

  • aldpro_domain – название домена.

  • aldpro_admin_password – пароль администратора домена.

    Длина пароля – не менее 8 символов.

  • aldpro_version – версия ALD Pro, которая развертывается на узлах или до которой выполняется обновление.

    Значение по умолчанию задано в коллекции и соответствует последней проверенной версии ALD Pro, поэтому вместе с коллекцией меняется и оно. В коллекции 6.8.0 это 3.3.0.

    Значение выбирают по матрице совместимости из файла README.md коллекции, так как каждая версия ALD Pro предъявляет собственные требования к версии операционной системы.

  • aldpro_repo – список ссылок на репозитории, которые следует использовать для установки пакетов ALD Pro.

    Например, для развертывания ALD Pro версии 3.3.0 эта ссылка может иметь следующий вид:

    deb https://dl.astralinux.ru/aldpro/frozen/01/3.3.0 1.7_x86-64 main base
    

Обязательные переменные#

При использовании ролей обязательны для заполнения следующие переменные:

  • astra.ald_pro.controller:

    • aldpro_admin_password;

    • aldpro_domain;

    • aldpro_pdc_name;

    • aldpro_repo;

    Переменную aldpro_pdc_name роль использует для обращения к службе каталога по адресу <aldpro_pdc_name>.<aldpro_domain>.

  • astra.ald_pro.replica:

    • aldpro_admin_password;

    • aldpro_domain;

    • aldpro_pdc_ip;

    • aldpro_pdc_name;

    • aldpro_repo;

    Переменную aldpro_pdc_ip роль astra.ald_pro.replica не читает сама, однако она развертывает реплику поверх служб клиента домена и поэтому зависит от роли astra.ald_pro.client, которой эта переменная необходима.

  • astra.ald_pro.client:

    • aldpro_admin_password;

    • aldpro_domain;

    • aldpro_pdc_ip;

    • aldpro_pdc_name;

    • aldpro_repo.

Последовательность применения#

Для применения коллекции astra.ald_pro выполните следующие действия:

  1. Подготовьте узлы с необходимыми техническими характеристиками.

    Требования к техническим характеристикам узлов и методики расчета приведены в документе РДЦП.10101-01 95 01 «Программный комплекс «ALD Pro». Руководство администратора. Инструкция по развертыванию и обновлению», п. 1.4 «Рекомендации по планированию ресурсов службы каталога».

  2. Настройте управляемые узлы согласно инструкции.

  3. Создайте каталог проекта, например:

    mkdir ald-pro-enrolling
    

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

  4. Создайте файл с настройками Ansible ansible.cfg:

    [defaults]
    ansible_ssh_private_key_file = /path/to/private/ssh/key
    host_key_checking = False
    interpreter_python = /usr/bin/python3
    inventory = inventory.ini
    
  5. Создайте файл инвентаря inventory.ini и добавьте в него сведения об управляемых узлах, например:

    [all]
    dc1       ansible_host=192.168.56.12
    dc2       ansible_host=192.168.56.13
    client1   ansible_host=192.168.56.14
    client2   ansible_host=192.168.56.15
    
    [all:vars]
    ansible_user='vagrant'
    
    [clients]
    client1
    client2
    
  6. Создайте файл с переменными ролей variables.yml, например:

    ---
    aldpro_admin_password: "aldpropass123456"
    aldpro_domain: "domain.example.com"
    aldpro_enable_gc: true
    aldpro_enable_syncer: true
    aldpro_global_forwarders:
      - "8.8.8.8"
      - "1.1.1.1"
    aldpro_pdc_ip: "192.168.56.12"
    aldpro_pdc_name: "dc1"
    aldpro_repo:
      - "deb https://dl.astralinux.ru/aldpro/frozen/01/3.3.0 1.7_x86-64 main base"
    aldpro_version: "3.3.0"
    
  7. Создайте файл сценария playbook.yml и добавьте в него соответствующие роли для узлов домена, например:

    ---
    - name: Enrolling ALD Pro domain controller
      hosts: dc1
      become: true
      vars_files:
        - variables.yml
      roles:
        - astra.ald_pro.controller
    
    - name: Enrolling ALD Pro domain replica
      hosts: dc2
      become: true
      vars_files:
        - variables.yml
      roles:
        - astra.ald_pro.replica
    
    - name: Enrolling ALD Pro clients
      hosts: clients
      become: true
      vars_files:
        - variables.yml
      roles:
        - astra.ald_pro.client
    
  8. Выполните сценарий с использованием образа среды исполнения aa-full-ee:

    ansible-navigator run playbook.yml \
      --inventory inventory.ini \
      --eei hub.astra-automation.ru/aa-2.1/aa-full-ee:latest
    

Обновление ALD Pro#

Отдельного режима обновления в коллекции нет. Обновление выполняют те же роли, что и развертывание. Для этого в переменных aldpro_version и aldpro_repo задают целевую версию и репозиторий этой версии, после чего роль запускают повторно. Роль сравнивает целевую версию с установленной на узле и начинает обновление, если целевая версия выше. Если целевая версия не выше установленной, обновление не начинается. Установку продукта в этом случае роль тоже не повторяет, если прошлое действие ALD Pro на узле завершилось, то есть узел находится в состоянии installed или updated. Если прошлое действие не завершилось, например установка прервалась, роль выполняет установку заново с той же версией. Это штатный способ повторить прерванную установку.

Пустым повторный запуск не бывает, так как остальные задачи ролей выполняются при каждом запуске:

  • подключается репозиторий из переменной aldpro_repo и обновляется кеш пакетов;

  • устанавливается пакет ca-certificates последней доступной версии;

  • задается название узла и обновляется файл /etc/hosts;

  • применяется защита учетной записи администратора, если включен параметр aldpro_admin_krbcanonicalname (по умолчанию включен).

Пример задания для обновления контроллера домена:

---
- name: Upgrading ALD Pro domain controller
  hosts: dc1
  become: true
  vars:
    aldpro_version: "3.3.0"
    aldpro_repo:
      - "deb https://dl.astralinux.ru/aldpro/frozen/01/3.3.0 1.7_x86-64 main base"
  roles:
    - astra.ald_pro.controller

Узлы с дополнительными службами домена обновляют так же, повторным запуском их ролей с теми же значениями aldpro_version и aldpro_repo.

Реплики контроллера домена так не обновляются. Роль astra.ald_pro.replica содержит только развертывание и версию установленного ALD Pro не сравнивает. На узле, где установка реплики завершилась, повторный запуск роли установку не повторяет, так как для состояний installed и updated роль пропускает этот шаг. Если установка реплики не завершилась, повторный запуск выполняет ее заново. Порядок обновления реплик приведен в руководстве администратора ALD Pro.

Важно

Сначала обновляют контроллер домена, и только после этого узлы с дополнительными службами.

Обновляться можно не с любой версии на любую. Допустимые пути заданы в переменной aldpro_upgrade_matrix, и роль проверяет по ней заданный переход. Неподдерживаемый переход роль отклоняет с сообщением о том, что обновляться необходимо через промежуточную версию, поэтому домен остается в прежнем состоянии.

Коллекция 6.8.0 поддерживает следующие пути обновления:

Установленная версия

Версии, до которых возможно обновление

2.2.1

2.3.0, 2.4.0, 2.4.1

2.3.0

2.4.0, 2.4.1

2.4.0

2.4.1

2.4.1

2.4.2

2.4.2

2.4.3, 2.5.0, 3.0.0

2.4.3

2.5.0, 3.0.0

3.0.0

3.1.0

3.1.0

3.2.0

3.2.0

3.2.1, 3.3.0

Перед обновлением сверяют версию операционной системы на узлах с матрицей совместимости из файла README.md коллекции и при необходимости обновляют операционную систему. Для серверной группы домена (контроллер, реплики и узлы дополнительных служб) коллекция проверяет минимальную версию операционной системы сама и прекращает работу, если версия ниже требуемой. Например, для ALD Pro 3.3.0 серверной группе необходима Astra Linux Special Edition версии 1.7.10 или 1.8.6.

Проверка работает только для тех версий ALD Pro, которые перечислены в переменной aldpro_server_os_matrix. В коллекции 6.8.0 это версии 3.2.0, 3.2.1 и 3.3.0, поэтому при обновлении до более ранних версий версию операционной системы сверяют вручную.