Установка с использованием инсталлятора

Инсталлятор позволяет автоматизировать операции по развертыванию и первоначальной настройке компонентов продукта «Служба каталогов "Эллес"» с помощью ролей Ansible.

Роли

В состав инсталлятора входят:

  • роль bind — развертывание и первоначальная настройка DNS-сервера BIND 9 на ОС Astra Linux SE 1.7 и РЕД ОС 7.3:

    • установка пакетов, соответствующих используемой на сервере ОС;

    • настройка BIND 9 в качестве DNS-бэкенда для Эллес;

    • конфигурирование DNS-сервера в соответствии с заданными настройками роли;

  • роль samba — развертывание домена Эллес / ввод сервера в качестве контроллера домена в существующий домен Эллес , Samba или Active Directory на ОС Astra Linux SE 1.7 и РЕД ОС 7.3:

    • подготовка сервера в соответствии с заданными настройками роли:

      • задание имени хоста;

      • создание резервных копий и изменение файлов hosts, resolve.conf и krb5.conf;

      • очистка следов прошлых установок;

      • переключение службы SELinux в режим permissive на сервере с РЕД ОС;

    • установка пакетов, соответствующих используемой на сервере ОС, из apt/yum-репозитория или с использованием локальных файлов, указанных в настройках роли;

    • выполнение команды развертывания домена (samba-tool domain provision) / присоединения к домену (samba-tool domain join) с параметрами, заданными в настройках роли;

    • корректировка записи DNS в файле resolv.conf;

    • включение и запуск доменной службы inno-samba;

    • перезапуск DNS-сервера;

    • настройка обратной зоны DNS и создание записей DNS (при необходимости);

  • роль dsm – развертывание приложения «Менеджер службы каталогов» (DSM) на ОС Astra Linux SE 1.7 и РЕД ОС 7.3:

    • создание каталогов для размещения конфигурационного файла и файлов сертификатов;

    • установка пакетов, соответствующих используемой на сервере ОС, из apt/yum-репозитория или с использованием локальных файлов, указанных в настройках роли;

    • создание закрытого ключа, создание запроса на получение сертификата (Certificate Signing Request, CSR), создание самоподписанного сертификата, формирование файла PKCS12;

    • формирование конфигурационного файла DSM по шаблону в соответствии с параметрами, заданными в настройках роли;

    • перезапуск службы dsm;

  • роль samba-dc-exporter — развертывание сервиса мониторинга (экспортера метрик Prometheus) на ОС Astra Linux SE 1.7 и РЕД ОС 7.3:

    • установка пакетов, соответствующих используемой на сервере ОС, из apt/yum-репозитория или с использованием локальных файлов, указанных в настройках роли;

    • формирование конфигурационного файла DSM и файла с данными учетных записей по шаблонам в соответствии с параметрами, заданными в настройках роли;

    • перезапуск службы samba-dc-exporter;

  • роль robocopy — настройка односторонней репликации SYSVOL с контроллера домена на ОС Windows Server на контроллеры домена Эллес на ОС Linux:

    • создание на контроллере домена на ОC Windows Server файла с настройками запуска скрипта репликации;

    • загрузка на контроллер домена на ОC Windows Server скрипта репликации;

    • создание учетной записи Managed Service Account (MSA), от имени которой будет запускаться скрипт;

    • создание периодически запускаемой задачи для выполнения скрипта.

Последовательность установки

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

Создание схемы развертывания

Схема развертывания (inventory в терминах Ansible) описывает хосты и группы хостов, на которых будут развертываться сервисы продукта. Также она может содержать значения переменных, относящиеся к отдельным хостам и группам хостов.

В дистрибутиве продукта поставляются примеры схем развертывания в формате YAML:

  1. Файл installer/inventory/example_1.yaml содержит пример установки на серверах сервисов продукта (пакеты bind9, inno-samba, inno-samba-dc-exporter и dsm) с последующим вводом в роли контроллеров в существующий домен Active Directory.

  2. Файл installer/inventory/example_2.yaml содержит пример установки на серверах сервисов продукта (пакеты bind9, inno-samba и inno-samba-dc-exporter) с последующим развертыванием домена Эллес.

Группы хостов

Инсталлятор поддерживает следующие группы хостов:

  • SAMBA_DC — группа хостов, на которых развертывается контроллер домена Эллес;

    В этой группе указываются настройки Эллес, BIND 9 и домена, который создается или к которому выполняется присоединения.

  • DC_EXPORTER — группа хостов, на которые устанавливается сервис мониторинга inno-samba-dc-exporter;

  • DSM — группа хостов, на которые устанавливается приложение «Менеджер службы каталогов» (DSM);

  • WIN_DC — группа контроллеров на ОС Windows Server, на которых настраивается репликация SYSVOL.

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

Пример структуры задания групп для установки нескольких сервисов на одни и те же хосты:

SAMBA_DC:
  hosts:
    host_01:
      ansible_host: "192.168.0.2"
    host_02:
      ansible_host: "192.168.0.3"
DC_EXPORTER:
  hosts:
    host_01:
    host_02:
DSM:
  hosts:
    host_01:
    host_02:

Переменные

Ansible поддерживает задание переменных на разных уровнях и в разных форматах, включая использование подстановок (см. подробное описание доступных возможностей по работе с переменными в документации Ansible).

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

Пример задания настроек:

all:
  vars:
    variable: "value"
    variable: "value"
    ...
HOST_GROUP:
  vars:
    variable: "{{ var_substitution }}"
    variable: true
  hosts:
    host_01:
      variable: "{{ var_substitution }}"
      variable: "{{ var_substitution }}"
      variable:
        - value
        - value
    host_02:
      variable: "{{ var_substitution }}"
      variable: "{{ var_substitution }}"
      variable:
        - value
        - value

Настройка переменных ролей

Для настройки ролей используются переменные.

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

Роль bind обеспечивает развертывание DNS-сервера BIND 9. Выполняется в случае задания в переменной samba__dns_backend роли samba значения BIND9_DLZ (по умолчанию).

Для настройки роли доступны переменные:

  • интеграция с Эллес:

    • bind__samba_integration_enabled — включение интеграции с Эллес:

      • в файл named.conf добавляется дополнительная директива include из переменной bind__samba_conf_include;

      • в файл named.conf.options добавляются дополнительные опции из переменной bind__samba_conf_opts;

    • bind__samba_conf_include — путь к файлу named.conf, формируемому Эллес (по умолчанию — "/app/inno-samba/bind-dns/named.conf")

    • bind__samba_conf_opts — дополнительные настройки для интеграции с Эллес;

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

      bind__samba_conf_opts:
        minimal-responses: "yes"
        tkey-gssapi-keytab: "/app/inno-samba/bind-dns/dns.keytab"
    • bind__samba_domain_forwarders — список словарей с описанием доменов, для которых требуется переадресация зон (по умолчанию – []);

      Каждое поле словаря содержит имя домена и список IP-адресов контроллеров в этом домене.

      Например:

      bind__samba_domain_forwarders:
        - domain: "root.lan"
          forwarders:
            - 10.6.32.5
            - 10.6.32.6

      В этом случае будет добавлено три зоны:

      • zone "root.lan" IN { type forward; forwarders: { 10.6.32.5; 10.6.32.6; }; }

      • zone "_msdcs.root.lan" IN { type forward; forwarders: { 10.6.32.5; 10.6.32.6; }; }

      • zone "32.6.10.in-addr.arpa" IN { type forward; forwarders: { 10.6.32.5; 10.6.32.6; }; }

  • общие настройки, переадресация и зоны DNS:

    • bind__named_conf_include — список дополнительных внешних или внутренних конфигураций для DNS; указывается путь к конфигурации (по умолчанию — []);

    • bind__forwarders — список вышестоящих DNS-серверов, на которые будут переправляться неавторитетные запросы (по умолчанию — []);

      Пример значения:

      bind__forwarders:
        - 8.8.8.8
    • bind__zone_conf_opts — список конфигураций дополнительных зон (по умолчанию — []);

      Пример значения:

      bind__zone_conf_opts:
        - name: inno.tech
          type: "master"
          file: "\"{{ bind__config_map[ansible_os_family][ansible_distribution].bind__dir }}/inno.tech\""
          allow-transfer: "{ 192.168.59.101; 192.168.59.100; }"
          allow-update: "{ 192.168.59.1; }"
        - name: test.inno.tech
          type: "master"
          file: "\"{{ bind__config_map[ansible_os_family][ansible_distribution].bind__dir }}/test.inno.tech\""
    • bind_zone_soa_conf_opts — список конфигураций SOA для дополнительных зон (по умолчанию — []);

      Пример значения:

      bind_zone_soa_conf_opts:
        - name: 'inno.tech'
          name_servers:
            - "it-dns-01.inno.tech."
            - "it-dns-02.inno.tech."
          name_servers_ip:
            - name: "it-dns-01.inno.tech."
              ip: "10.0.16.7"
            - name: "it-dns-02.inno.tech."
              ip: "10.0.16.8"
          hostmaster_email: admin
        - name: 'test.inno.tech'
          hostmaster_email: admin
    • bind__zone_ttl — время жизни записей в зоне, обслуживаемой DNS-сервером (по умолчанию — "1W");

    • bind__zone_time_to_refresh — время обновления записей зон, обслуживаемых DNS-сервером (по умолчанию — "1D");

    • bind__zone_time_to_retry — время до повторного обновления записей зон при неудачном обновлении (по умолчанию — "1H);

    • bind__zone_time_to_expire — время до истечения периода действия записей зон (по умолчанию — "1W");

    • bind__zone_minimum_ttl – минимальное время жизни записей в зоне, обслуживаемой DNS-сервером (по умолчанию – "1D");

    • bind__zone_forwarders — список словарей с описанием серверов переадресации для зон (по умолчанию – []).

      Каждое поле словаря содержит имя зоны и список IP-адресов, на которые должна выполняться переадресация для этой зоны.

      Пример значения:

      bind__zone_forwarders:
        - zone: "root.lan"
          forwarders:
            - 10.0.0.1
            - 10.0.0.2

      В этом случае будет добавлено зона со следующими настройками переадресации:

      zone "root.lan" IN { type forward; forwarders: { 10.0.0.1; 10.6.32.2; }; }

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

Роль samba обеспечивает установку пакета inno-samba с последующим созданием домена Эллес либо присоединением к существующему домену Эллес, Samba или Active Directory.

Для настройки роли доступны переменные:

  • samba__install — режим установки пакета inno-samba:

    • repo (по умолчанию) — установка из репозитория apt/yum;

      Для настройки репозитория используется переменная samba__repo. Требуемая версия пакета указывается в переменной samba__version.

    • file — установка из deb/rpm-файла;

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

    • no — установка не требуется;

  • samba__domain (обязательный параметр) — полное имя домена в верхнем регистре:

    • имя нового домена, если samba__dc_role = primary;

    • имя существующего домена, если samba__dc_role = secondary или samba__dc_role = secondary_ro;

  • samba__dc_role — роль контроллера домена:

    • primary (по умолчанию) — первый контроллер в новом домене;

    • secondary — второй и последующий контроллер в существующем домене (RWDC);

    • secondary_ro — второй и последующий контроллер с доступом к базе каталога только на чтение в существующем домене (RODC);

    • standalone — установка пакета inno-samba без настройки контроллера домена;

  • samba__domain_admin — учетная запись администратора домена (по умолчанию — Administrator@{{ samba__domain }});

  • samba__domain_admin_password (обязательный параметр) — пароль от учетной записи администратора домена;

    Может быть задан через переменную окружения SAMBA_ADMIN_PASSWORD.

  • samba__workgroup — имя рабочей группы (по умолчанию — первая часть samba__domain);

  • samba__domain_dns_server_ip — IP-адрес DNS-сервера домена, к которому должен быть присоединен новый контроллер домена; обычно это IP-адрес основного контроллера домена;

    Переменная обязательна для samba__dc_role = secondary и samba__dc_role = secondary_ro.

  • samba__dc_site — имя сайта для размещения присоединяемого контроллера домена;

    Может быть задана для samba__dc_role = secondary и samba__dc_role = secondary_ro.

  • samba__dns_backend — тип DNS-бэкенда:

    • BIND9_DLZ (по умолчанию) — в качестве DNS-сервера используется BIND 9; в этом случае установка включает развертывание на хосте BIND 9 с помощью роли bind;

    • SAMBA_INTERNAL — использование встроенного DNS-сервера;

  • samba__dns_forwarder — внешний DNS-сервер;

    Используется при samba__dns_backend = SAMBA_INTERNAL.

  • samba__backend_store — тип базы данных каталога; значение параметра --backend-store для подкоманд samba-tool domain provision и samba-tool domain join:

    • mdb (по умолчанию) — использование БД LMDB;

    • tdb — использование БД TDB;

  • samba__backend_store_size — максимальный размер базы данных каталога (при использовании LMDB); значение параметра --backend-store-size для подкоманд samba-tool domain provision и samba-tool domain join (по умолчанию — 16Gb);

  • samba__ldap_strong_auth — флаг включения обязательного подписания или подписания и шифрования трафика LDAP; значение конфигурационного параметра ldap server require strong auth (возможные значения — true | false; по умолчанию — false);

  • samba__functional_level — функциональный уровень (режим работы) домена и леса; значение параметра --function-level для подкоманды samba-tool domain provision и конфигурационного параметра ad dc functional level (по умолчанию — 2016):

    • возможные значения для --function-level — 2000 | 2003 | 2008 | 2008_R2 | 2016;

    • возможные значения для ad dc functional level — 2008_R2 | 2012 | 2012_R2 | 2016;

  • samba__resolv_conf_nameserver — DNS-сервер для добавления в файл resolv.conf по окончании установки (по умолчанию — 127.0.0.1);

  • samba__force_reprovision — флаг запуска очистки и повторной установки пакета inno-samba с последующим переконфигурированием контроллера домена (возможные значения — true | false; по умолчанию — false);

  • samba__system_user — имя пользователя и группа для запуска systemd-сервиса inno-samba.service (по умолчанию — root);

  • samba__system_group — группа для запуска systemd-сервиса inno-samba.service (по умолчанию — root);

  • samba__global_opts_primary_dc — конфигурационные параметры для добавления в файл smb.conf с помощью ключа --option="<parameter name> = <parameter value>" при выполнении подкоманды samba-tool domain provision, если samba__dc_role = primary;

    По умолчанию добавляются следующие конфигурационные параметры:

       dns forwarder: "{{ samba__dns_forwarder }}"
       netbios name: "{{ ansible_hostname }}"
       realm: "{{ samba__domain }}"
       server role: "active directory domain controller"
       workgroup: "{{ samba__workgroup }}"
       idmap_ldb:use rfc2307: "yes"
       allow dns updates: "nonsecure and secure"
       ldap server require strong auth: "{{ samba__ldap_strong_auth }}"
       domain master: "yes"
       local master: "yes"
       preferred master: "yes"
       vfs objects: "dfs_samba4 acl_xattr"
       map acl inherit: "yes"
       store dos attributes: "yes"
       ad dc functional level: "{{ samba__functional_level }}"

    См. полный список параметров с информацией об их назначении и возможных значениях в документации по smb.conf.

  • samba__global_opts_secondary_dc — конфигурационные параметры для добавления в файл smb.conf с помощью ключа --option="<parameter name> = <parameter value>" при выполнении подкоманды samba-tool domain join, если samba__dc_role = secondary;

    По умолчанию добавляются следующие конфигурационные параметры:

       ad dc functional level: "{{ samba__functional_level }}"
       dns forwarder: "{{ samba__dns_forwarder }}"
       ldap server require strong auth: "{{ samba__ldap_strong_auth }}"

    См. полный список параметров с информацией об их назначении и возможных значениях в документации по smb.conf.

  • samba__log_level — уровень логирования для добавления в smb.conf (по умолчанию — 3);

  • samba__additional_opts — дополнительные опции для samba-tool (по умолчанию — "");

    Пример значения:

    samba__additional_opts: "--no-gc --server win-dc1"

    См. список опций в разделе «Присоединение к домену».

  • samba__configure_reverse_zone — флаг создания обратной зоны DNS и записи PTR записи в ней для текущего контроллера домена (возможные значения — true | false; по умолчанию — true);

  • samba__recyclebin_enable — флаг включения функциональности корзины (возможные значения — true | false; по умолчанию false);

    См. подробнее в разделе «Управление корзиной».

    Флаг предназначен для использования при присоединении сервера к домену Active Directory, в котором уже включена функциональность корзины.
  • samba__reset_sysvol_acl — флаг сброса прав доступа к каталогу SYSVOL (возможные значения — true | false; по умолчанию true).

    Если флаг установлен, после развертывания контроллера домена выполняется подкоманда samba-tool ntacl sysvolreset.

    Требуется для настройки синхронизации SYSVOL с помощью robocopy.

  • samba__repo — дополнительный репозиторий apt/yum для установки пакета inno-samba; параметры репозитория:

    • url — ссылка на репозиторий;

    • host (необязательный параметр) — хост репозитория (только для при использовании базовой авторизации в репозитории apt);

    • username (необязательный параметр) — имя пользователя для базовой авторизации в репозитории;

    • password (необязательный параметр) — пароль для базовой авторизации в репозитории;

    • key (необязательный параметр) — GPG-ключ для доступа к репозиторию.

Пример сценария Ansible для присоединения к существующему домену:

- hosts: SAMBA
  vars:
    samba__domain: DEMO.LAN
    samba__dc_role: secondary
    samba__domain_dns_server_ip: 192.168.0.1
    samba__domain_admin: Administrator
    samba__domain_admin_password: password
  roles:
    - role: samba

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

Роль dsm обеспечивает установку и предварительную настройку приложения «Менеджер службы каталогов» (DSM).

Для настройки роли доступны переменные:

  • dsm__install — режим установки пакета dsm:

    • repo (по умолчанию) — установка из репозитория apt/yum;

      Требуемая версия пакета указывается в переменной dsm__version.

    • file — установка из deb/rpm-файла;

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

    • no — установка не требуется;

  • dsm__domain (обязательный параметр) — домен, с которым будет работать приложение; значение для параметра domain.name в конфигурационном файле application.yml;

  • dsm__port — порт, на котором будет доступно веб-приложение; значение для параметра server.port в конфигурационном файле application.yml (по умолчанию — 8080);

  • dsm__api_port — порт для доступа к API DSM (по умолчанию — 8081);

  • dsm__swagger_ui_enabled — флаг включения интерфейса Swagger UI для доступа к API (возможные значения — true | false; по умолчанию — true);

  • dsm__spring_connection_sambatool_ssh_enabled — флаг включения подключения к LDAP посредством samba-tool по SSH (возможные значения — true | false; по умолчанию — false);

  • настройки LDAP-соединения (раздел ldap в application.yml):

    • dsm__ldap_base_dn (обязательный параметр) — базовое DN-имя;

    • dsm__ldap_host — хост LDAP (по умолчанию — 127.0.0.1);

    • dsm__ldap_port — порт LDAP (по умолчанию — 389);

    • dsm__ldap_user_dn — DN-имя пользователя для авторизации в LDAP (по умолчанию — CN=Administrator,CN=Users,{{ dsm__ldap_base_dn }});

    • dsm__ldap_password (обязательный параметр) — пароль для авторизации в LDAP;

    • dsm__ldap_pool_size — максимальное количество одновременных подключений к серверу LDAP (по умолчанию — 5);

  • настройки SSL-соединения (раздел ssl в application.yml):

    • dsm__ssl_enabled — флаг включения доступа к веб-приложению по HTTPS (возможные значения — true | false; по умолчанию — true);

      См. более подробную информацию по настройке работы DSM по HTTPS в разделе «Настройки для работы по HTTPS».

    • dsm__keystore — путь к keystore (по умолчанию /opt/dsm/springboot.p12);

    • dsm__keystore_password — пароль для keystore (по умолчанию — pAssw0rd);

      Используется, если dsm__ssl_enabled: true.

    • dsm__privatekey_password — пароль для закрытого ключа (по умолчанию — pAssw0rd);

      Используется, если dsm__ssl_enabled: true.

  • настройки для формирования самоподписанного SSL-сертификата:

    • dsm__generate_cert — флаг включения формирования закрытого ключа и самоподписанного сертификата (возможные значения — true | false; по умолчанию — true);

    • dsm__privatekey_path — путь для формирования закрытого ключа (по умолчанию — /etc/ssl/private/dsm_selfsigned.key);

    • dsm__certificate_path — путь для формирования сертификата (по умолчанию — /etc/ssl/csr/dsm_selfsigned.crt);

    • dsm__tiket_certificate_path — путь для формирования запроса на получение сертификата (по умолчанию — /etc/ssl/csr/dsm_selfsigned.csr);

    • dsm__certificate_san — список значений для добавления в запрос на получение сертификата в рамках расширения Subject Alternative Name (SAN).

      Требуется для обеспечения корректной проверки сертификата SSL при запросе доступа к IP-адресу.

      Значениям должен предшествовать префикс в формате Option:Value, где Option — IP или DNS, а Value — IP-адрес или имя домена.

      Например: ["IP:192.168.0.1", "DNS:dsm.example.com"].

      Пример значений для запроса на получения сертификата для DSM:

      dsm__certificate_request:
        country_name: RU                                    # Двухбуквенный код
        state_of_province_name: St Petersburg               # Регион размещения организации
        locality_name: St Petersburg                        # Город
        organization_name: Innotech                         # Организация
        organizational_unit_name: Example Org               # Подразделение
        common_name: dsm.example.com                        # Полное доменное имя
        email_address: "YEmail@example.com"                 # Эл. почта

Переменные роли samba-dc-exporter

Роль samba-dc-exporter обеспечивает установку и предварительную настройку сервиса мониторинга.

Для настройки роли доступны переменные:

  • samba_dc_exporter__install — режим установки пакета inno-samba-dc-exporter:

    • repo (по умолчанию) — установка из репозитория apt/yum;

      Требуемая версия пакета inno-samba-dc-exporter указывается в переменной samba_dc_exporter__version, а пакета python3-prometheus-client — в переменной samba_dc_exporter__prometheus_client_version.

    • file — установка из deb/rpm-файла;

      Путь к файлу пакета inno-samba-dc-exporter указывается в переменной samba_dc_exporter__package_file, а к файлу пакета python3-prometheus-client — в переменной samba_dc_exporter__prometheus_client_package_file. Файлы будут загружен на хост и установлен.

    • no — установка не требуется;

  • samba_dc_exporter__domain — имя домена, в рамках которого осуществляется мониторинг; значение для параметра domain_name в конфигурационном файле config.yaml;

  • samba_dc_exporter__hostname — имя хоста (без домена) контроллера домена Эллес, для которого осуществляется мониторинг; значение для параметра dc_hostname в конфигурационном файле config.yaml (по умолчанию — {{ ansible_hostname }});

  • samba_dc_exporter__port — номер порта для запуска HTTP-сервера для предоставления метрик (по умолчанию — 9099);

  • samba_dc_exporter__metric_collect_interval_sec — интервал сбора метрик в секундах в секундах; значение для параметра metric_collect_interval_sec в конфигурационном файле config.yaml (по умолчанию — 5);

  • настройки логирования:

    • samba_dc_exporter__log_level — уровень логирования; значение для параметра log.logLevel в конфигурационном файле config.yaml (по умолчанию — INFO);

    • samba_dc_exporter__log_dir — путь к каталогу с логами; значение для параметра log.logDir в конфигурационном файле config.yaml (по умолчанию — /app/samba-dc-exporter/logs);

  • настройки LDAP-соединения:

    • samba_dc_exporter__ldap_user — имя пользователя для авторизации в LDAP (sAMAccountName); значение для параметра ldap_user в файле cred;

    • samba_dc_exporter__ldap_password — пароль пользователя для авторизации в LDAP; значение для параметра ldap_password в файле cred;

    • samba_dc_exporter__ldap_base_dn — базовое DN-имя для проверки LDAP-поиска;

    • samba_dc_exporter__ldap_search_path — базовое DN-имя для поиска пользователя LDAP по указанному имени; значение для параметра ldap_search_path в файле config.yaml (по умолчанию — CN=Users,{{ samba_dc_exporter__ldap_base_dn }});

  • настройки доступа к метрикам по HTTP:

    • samba_dc_exporter__http_user — имя пользователя для аутентификации по HTTP; значение для параметра http_user в файле cred;

    • samba_dc_exporter__http_user_pw — пароль пользователя для аутентификации по HTTP; значение для параметра http_user_pw в файле cred;

    • samba_dc_exporter__wsgi_headers — пользовательские HTTP-заголовки; значение для параметра wsgi_headers в файле config.yaml.

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

      • ; — разделитель между заголовками;

      • : — разделитель между заголовком и его содержимым;

      • \; — для добавления символа ';'.

      Пример:

      Server: WSGIServer/0.2\; Python/3.20.1; Second-header: Second Header Content

      Результат:

      Server: WSGIServer/0.2; Python/3.20.1
      Second-header: Second Header Content

Пример сценария Ansible для установки сервиса мониторинга:

- hosts: samba_server
  vars:
    samba_dc_exporter__domain: DEMO.LAN
    samba_dc_exporter__ldap_user: user
    samba_dc_exporter__ldap_pw: password
    samba_dc_exporter__ldap_base_dn: DC=DEMO,DC=LAN
  roles:
    - role: samba-dc-exporter

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

Роль robocopy обеспечивает настройку синхронизации содержимого каталога SYSVOL между контроллером домена на ОС Windows Server (источник) и контроллерами домена на ОС Linux (целевые контроллеры).

Для настройки роли доступны переменные:

  • robocopy__dc_list — список хостов контроллеров домена, на которые требуется копировать содержимое SYSVOL;

  • robocopy__interval — интервал запуска задачи синхронизации; указывается в формате HH:MM:SS (по умолчанию — 00:05:00, каждые 5 минут);

  • robocopy__work_dir — рабочий каталог, в который будет помещен скрипт PowerShell (по умолчанию — C:\\sysvol_repl);

  • robocopy__msa_account — имя учетной записи MSA, которая будет создана и будет использоваться для запуска запланированной задачи (по умолчанию — msa_sysvol).

Запуск инсталлятора

Для запуска установки на хостах и группах хостов, указанных в схеме развертывания, в соответствии с заданными настройками с использованием поставляемого в дистрибутиве сценария (install.yaml) перейдите в каталог с распакованными файлами инсталлятора и выполните:

ansible-playbook -i <path/to/inventory.yaml> install.yaml

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

Для выполнения отдельных задач используйте следующие теги Ansible:

  • bind — установка и конфигурирование BIND 9;

  • bind__reconfigure — изменение конфигурации BIND 9;

  • bind__absent — удаление BIND 9 с сервера;

  • samba — установка и конфигурирование inno-samba;

  • samba__absent — удаление inno-samba с сервера;

  • samba-dc-exporter — установка и конфигурирование inno-samba-dc-exporter;

  • samba-dc-exporter__absent — удаление inno-samba-dc-exporter с сервера;

  • dsm — установка и конфигурирование dsm;

  • dsm__generate_private_key — формирование файла закрытого ключа;

  • dsm__generate_certificate — формирование файла сертификата;

  • dsm__absent — удаление dsm с сервера.

Например, чтобы удалить сервис, запустите сценарий с тегом <service-name>__absent:

ansible-playbook -i <path/to/inventory.yaml> install.yaml -t samba_dc_exporter__absent