Общие сведения

Документ содержит описание общей схемы и последовательности установки продукта «Служба управления конфигурациями» (LCM).

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

Установка выполняется с использованием дистрибутива продукта «Служба управления конфигурациями» от ГК «Иннотех».

Состав дистрибутива

Дистрибутив продукта включает модули:

  • inno-lcm-core — сборка бэкенда LCM, содержащая скомпилированный код для массовой установки ПО на АРМ и обработки полученных событий;

  • inno-lcm-webadmin — пользовательский интерфейс администратора;

  • inno-lcm-salt-formulas — пакет с формулами для установки ПО на АРМ с использованием SaltStack;

  • CHANGELOG.md — файл, содержащий журнал изменений проекта в виде упорядоченного списка версий продукта с датами их выхода и описанием;

  • lcm-doc — сопроводительная документация, соответствующая версии продукта.

Дистрибутив распространяется следующими способами:

  • в виде Deb-пакетов, доступных для установки из apt-репозитория https://artifacts.inno.tech/repository/<клиент>-<редакция>-apt-packages;

    Перед установкой требуется добавить apt-репозиторий в список репозиториев операционной системы и обеспечить к нему доступ, используя полученные от ГК «Иннотех» публичный ключ и реквизиты пользователя.

  • в виде архивов в формате tar.gz, доступных для загрузки из репозитория https://artifacts.inno.tech/repository/<клиент>-<редакция>-raw-packages.

    Доступ к репозиторию осуществляется с использованием полученных от ГК «Иннотех» реквизитов. Архивы в репозитории сгруппированы по версиям. Для каждой версии предоставляется стандартный набор архивов с файлами для проверки контрольных сумм.

Требования к программному обеспечению

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

Название Описание Версия Тип лицензии Правообладатель

Astra Linux Special Edition

Операционная система на базе Linux.

Допускается использование других систем, основанных на ядре Linux, которые используются для установки Deb-пакетов, например, система с открытым исходным кодом Ubuntu версии 20.04 LTS и выше

1.7 и выше

GNU General Public License

ООО «РусБИТехАстра»

LDAP-сервер

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

Допускается использование любых серверов со стандартной схемой БД Microsoft
  • Microsoft Windows Server 2012 (или более новый);

  • Unboundid LDAP 4.0.16

  • Microsoft EULA;

  • GPL-2.0 license

  • Microsoft;

  • Open Source

PostgreSQL

СУБД для хранения и обработки данных продукта

Не ниже 14.0

PostgreSQL Licence

Open source

SaltStack

Система управления конфигурацией и автоматизации операций в ИТ-инфраструктуре

Не ниже 3005.1

Apache 2.0

Open Source

systemd

Подсистема инициализации и управления службами в Linux, которая используется для установки Deb-пакетов

245 и выше

GPL-2.0 license

Open Source

Предварительные требования

  1. Убедитесь, что установлено требуемое прикладное программное обеспечение соответствующей версии.

  2. Убедитесь, что после установки SaltStack на сервере, для доступа к Мастеру через REST API для SaltStack включен модуль salt-api.

  3. Задайте настроечные параметры продукта (подключение к БД, LDAP-серверу и другие свойства) в файле конфигурации application.properties и поместите этот файл в директорию /opt/inno-lcm-core.

  4. Выполните настройку фронтенда продукта.

  5. Получите SSL-сертификат для осуществления синхронизации пользователей по протоколу LDAPS.

Настройка бэкенда продукта

Для настройки бэкенда продукта в конфигурационном файле application.properties задайте параметры, описанные в таблице:

Наименование Описание Пример значения

quarkus.http.port

Порт, на котором работает LCM Rest API

8081

quarkus.log.file.enable

Активация логирования в файл. Значение по умолчанию — true

true

quarkus.log.file.path

Путь для сохранения файлов с логами продукта. Значение по умолчанию — quarkus.log

path/application.log

quarkus.log.file.format

Формат записи логов в файл. Значение по умолчанию — %d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c{3.}] (%t) %s%e%n

%d{yyyy-MM-dd HH:mm:ss} %-5p [%c] (%t) %s%e%n

quarkus.log.file.rotation.max-backup-index

Предельное количество сохраняемых файлов с логами при ротации. Значение по умолчанию — 5

5

quarkus.log.file.rotation.max-file-size

Максимальный размер одного файла с логами, после чего будет произведена ротация (создан следующий файл и продолжена запись). Значение по умолчанию — 10М

10М

quarkus.log.file.rotation.rotate-on-boot

Активация ротации при запуске продукта. Если установлено значение true, при запуске будет создан новый файл с логами. Значение по умолчанию — true

true

quarkus.datasource."ordering".username

Имя пользователя для подключения к схеме ordering. Схема создается автоматически по имени пользователя

ordering

quarkus.datasource."ordering".password

Пароль пользователя для подключения к схеме ordering

password

quarkus.datasource."ordering".reactive.url

Адрес подключения серверной части продукта к БД модуля ordering. Формат атрибута: postgresql://{db_host}:{db_port}/{db_name}

postgresql://{db_host}:5432/lcm

quarkus.datasource."ordering".jdbc.url

Адрес подключения Liquibase к БД модуля ordering. Формат атрибута: jdbc:postgresql://{db_host}:{db_port}/{db_name}

dbc:postgresql://{db_host}:5432/lcm

quarkus.datasource."lcm-db".username

Имя пользователя для подключения к схеме lcm-db. Схема создается автоматически по имени пользователя

lcm-db

quarkus.datasource."lcm-db".password

Пароль пользователя для подключения к схеме lcm-db

password

quarkus.datasource."lcm-db".reactive.url

Адрес подключения серверной части продукта к БД. Формат атрибута: postgresql://{db_host}:{db_port}/{db_name}

postgresql://{db_host}:5432/lcm

quarkus.datasource."lcm-db".jdbc.url

Адрес подключения liquibase к БД. Формат атрибута: jdbc:postgresql://{db_host}:{db_port}/{db_name}

jdbc:postgresql://{db_host}:5432/lcm

lcm.inventory.salt.pillar.schedule.highstate.second

Параметр, определяющий через какой интервал времени будет выполняться операция применения назначенных конфигураций на АРМ. Значение по умолчанию — 84400 секунд

84400

lcm.inventory.salt.pillar.schedule.highstate.splay

Параметр, определяющий на какой интервал времени может быть случайная задержка перед выполнением операции. Значение по умолчанию — 14400 секунд

14400

lcm.inventory.salt.pillar.schedule.grains-sync.second

Параметр, определяющий через какой интервал времени будет выполняться операция синхронизации параметров Grains. Значение по умолчанию — 14400 секунд

14400

lcm.inventory.salt.pillar.schedule.grains-sync.splay

Параметр, определяющий на какой интервал времени может быть случайная задержка перед выполнением операции. Значение по умолчанию — 2400 секунд

2400

lcm.inventory.salt.pillar.schedule.refresh-pillar.second

Параметр, определяющий через какой интервал времени будет выполняться операция синхронизации хранилища Pillar. Значение по умолчанию — 14400 секунд

14400

lcm.inventory.salt.pillar.schedule.refresh-pillar.splay

Параметр, определяющий на какой интервал времени может быть случайная задержка перед выполнением операции. Значение по умолчанию — 2400 секунд

2400

lcm.inventory.salt.pillar.schedule.grains.second

Параметр, определяющий через какой интервал времени будет выполняться операция инвентаризации АРМ. Значение по умолчанию — 84400 секунд

84400

lcm.inventory.salt.pillar.schedule.grains.splay

Параметр, определяющий на какой интервал времени может быть случайная задержка перед выполнением операции. Значение по умолчанию — 14400 секунд

14400

lcm.inventory.salt.command-batch-size

Максимальное количество АРМ, которое будет обрабатывать команду, запущенную на Мастере. Значение по умолчанию — 100

100

lcm.designer.order-item.batch.size

Максимальное количество элементов, которое содержится в запросе к модулю salt-adapter. При отсутствии атрибута в файле конфигурации значение по умолчанию — 10

100

lcm.inventory.job.sync-users.cron.expr

Cron-выражение для настройки запуска синхронизации пользователей LDAP

0 0 12 * * ?

lcm.inventory.job.sync-collection-pillars.cron.expr

Задает расписание обновления коллекций. Значение по умолчанию: 0 0/15 * ? * * * (каждые 15 минут)

0 0/15 * ? * * *

lcm.inventory.ldap.search-page-size

Максимальное количество пользователей для одной итерации синхронизации с LDAP

500

lcm.inventory.ldap.datasource[0].name

Условное обозначение домена

domain_alias1

lcm.inventory.ldap.datasource[0].host

IP-адрес или сетевое имя контроллера домена

192.168.0.1

lcm.inventory.ldap.datasource[0].port

Порт для соединения по протоколу LDAP. Опциональный параметр. Значение по умолчанию — 389. Для LDAP over SSL обычно используется порт 636

389

lcm.inventory.ldap.datasource[0].username

Имя пользователя, которое будет использовано для подключения к домену MS AD.

Может быть указано в одном из следующих форматов:

  • <имя_пользователя>@<имя домена>, например, ivanov@INNO;

  • пользователь в формате LDAP, например, CN=ivanov,CN=Users,DC=inno,DC=local

username1@domain1_name

lcm.inventory.ldap.datasource[0].password

Пароль пользователя для подключения к домену MS AD

user_password

lcm.inventory.ldap.datasource[0].ssl

Параметр, отвечающий за соединение по протоколу LDAP over SSL (LDAPS).

Возможные значения:

  • false — соответствует выключенному протоколу LDAPS, используется обычный LDAP;

  • true — соответствует включенному протоколу LDAPS, требует наличие файла с сертификатом для SSL-соединения (задается отдельным параметром);

  • trust-all — соответствует включенному протоколу LDAPS, принимает любые сертификаты без подтверждения.

Опциональный параметр. Значение по умолчанию — false

true

lcm.inventory.ldap.datasource[0].ssl-certificate

Относительный или абсолютный путь к файлу с сертификатом для подключения через LDAPS. Опциональный параметр. Значение по умолчанию — certificate.pem.

Подробную информацию о получение сертификата см. в разделе «Получение сертификата SSL для осуществления синхронизации пользователей по протоколу LDAPS»

/home/username/cert1.pem

lcm.inventory.ldap.datasource[0].base-dn

Базовое имя домена для поиска пользователей в формате записи LDAP

DC=domain_name1,DC=local

lcm.inventory.ldap.datasource[0].connect-timeout-millis

Максимальная длительность подключения к LDAP-серверу в миллисекундах. Значение 0 означает бесконечное ожидание. Опциональный параметр. Значение по умолчанию — 10000

10000

lcm.inventory.ldap.datasource[0].response-timeout

Максимальная длительность выполнения запроса к LDAP-серверу в миллисекундах. Значение 0 означает бесконечное ожидание. Опциональный параметр. Значение по умолчанию — 10000

10000

lcm.inventory.ldap.datasource[0].abandon-on-timeout

Отвечает за освобождение соединения в случае превышения максимальной длительности ожидания запроса. Возможные значения: true и false. Опциональный параметр. Значение по умолчанию — true

true

lcm.inventory.ldap.datasource[0].allow-concurrent-socket-factory-use

Указывает, разрешать ли использование экземпляра фабрики сокетов (который может совместно использоваться несколькими соединениями) для одновременного создания нескольких сокетов. Как правило, реализации фабрики сокетов являются потокобезопасными и могут создавать несколько соединений одновременно в отдельных потоках. В некоторых реализациях виртуальных машин (например, фабрики сокетов SSL в IBM JVM) этот параметр может использоваться, чтобы указать, следует ли разрешить одновременные попытки создания сокета (что может обеспечить лучшую и более стабильную производительность, особенно в случаях, когда попытка подключения не удалась из-за тайм-аута) или предотвратить (что может быть необходимо для непотоковой реализации фабрики сокетов). Опциональный параметр. Значение по умолчанию — true

true

lcm.salt-adapter.s3.state-bucket-name

Название корзины S3 для хранения общих файлов конфигураций и файлов состояний

salt-bucket

lcm.salt-adapter.s3.pillar-bucket-name

Название корзины S3 для хранения данных Pillar

pillar-bucket

Нумерация массива lcm.inventory.ldap.datasource начинается с 0.

Параметры подключения к домену №2 аналогичны параметрам домена №1:

  • lcm.inventory.ldap.datasource[1].name=domain_alias2;

  • lcm.inventory.ldap.datasource[1].host=192.168.0.1;

  • lcm.inventory.ldap.datasource[1].port=389;

  • lcm.inventory.ldap.datasource[1].username=username2@domain2_name;

  • lcm.inventory.ldap.datasource[1].ssl=false;

  • lcm.inventory.ldap.datasource[1].base-dn=DC=domain_name2,DC=local.

Настройка фронтенда продукта

Для настройки фронтенда выполните шаги:

  1. Задайте адрес обращения к бэкенду продукта в конфигурационном файле Nginx CI-процесса. Путь к конфигурационному файлу: /etc/nginx/site-available/inno-lcm-webadmin.

    Пример:

           location /api {
                    set $backend_uri http://127.0.0.1:8081;
                    rewrite ^\/api(\/.*)$ $1 break;
                    proxy_pass $backend_uri;
                    proxy_set_header Host $host;
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                    proxy_set_header X-Forwarded-Proto $scheme;
                }
        }
  2. Чтобы применить изменения, перезапустите Nginx-сервер, выполнив команду:

    service nginx restart

Получение сертификата SSL для осуществления синхронизации пользователей по протоколу LDAPS

Для отображения сертификата выполните команду в консоли:

openssl s_client -showcerts -connect <active_directory_domain_controller_address>:<ldap_ssl_port>

Пример:

openssl s_client -showcerts -connect 10.169.20.3:636

Полученный сертификат вставьте в файл, указанный в параметре lcm.inventory.ldap.datasource[i].ssl-certificate.

Ниже приведен пример формата файла с сертификатом SSL:

-----BEGIN CERTIFICATE-----
MIIGAzCCA+ugAwIBAgITPgAA73OOkh5tlMKRpwAAAADvczANBgkqhkiG9w0BAQwF
#....
3tC+mTiQEgt99WnACQHV9E9CN4Nhvj8PoTvoZxstCz2QMgw3p9F2wm/4n4aBOTei
kNsrtXOXsA==
-----END CERTIFICATE-----

Установка Deb-пакетов с модулями продукта

Установка продукта включает установку модулей:

  • inno-lcm-core;

  • inno-lcm-webadmin.

Чтобы установить модули, установите на сервере соответствующие Deb-пакеты одним из следующих способов:

Имена пакетов формируются по шаблону:

<package_name>_<build_version>-<edition>_<architecture>.deb

Где:

  • package_name — имя пакета;

  • build_version — версия пакета в соответствии с принципами семантического версионирования (мажорная_версия.минорная_версия.патч-версия);

  • edition — редакция дистрибутива;

  • architecture — архитектура.

Пример:

inno-lcm-core_1.1.0-1_amd64.deb

Установка из apt-репозитория

Для установки требуется следующее:

  • наименование apt-репозитория в формате https://<repository.domain.name>/repository/<клиент>-<редакция>-apt-packages;

  • файл с публичным ключом для доступа к apt-репозиторию;

  • реквизиты для доступа к apt-репозиторию.

Для установки пакетов на сервере из apt-репозитория:

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

    Например, на Astra Linux 1.7 SE или Ubuntu 20.04 используйте стандартную утилиту apt-key:

    sudo apt-key add keyfile.pgp
    При необходимости установки ключа для проверки подписи исполняемых файлов в защищенном режиме работы Astra Linux 1.7 SE следуйте инструкции в официальной документации.

    На Ubuntu 22.04 и выше используйте следующую команду (от имени пользователя root):

    cat keyfile.gpg | gpg --dearmor > /usr/share/keyrings/innotech-keyring.gpg
  2. Создайте файл /etc/apt/auth.conf.d/innotech.conf и задайте в нем реквизиты для доступа к репозиторию в стандартном формате:

    machine <repo_host> login <repo_user> password <repo_password>
  3. Подключите требуемый apt-репозиторий в соответствии с инструкциями для используемого дистрибутива Linux (см., например, инструкцию в официальной документации Astra Linux).

    Например, при использовании дистрибутива на основе Debian выполните следующую команду:

    echo -e "deb [trusted=yes] https://artifactory.inno.tech/repository/vtb-astra-apt-packages 1.7_x86-64 main" | sudo tee /etc/apt/sources.list.d/innotech.list
  4. Обновите пакеты с помощью стандартной команды.

    Например, при использовании дистрибутива на основе Debian выполните следующую команду:

    sudo apt update
  5. Установите пакет inno-lcm-core, выполнив команду:

    sudo apt -f -y install inno-lcm-core
  6. Установите пакет inno-lcm-webadmin, выполнив команду:

    sudo apt -f -y install inno-lcm-webadmin

Установка из архива

Для установки требуется следующее:

  • наименование репозитория с пакетами в формате https://<repository.domain.name>/repository/<клиент>-<редакция>-raw-packages;

  • реквизиты для доступа к apt-репозиторию.

Для установки пакетов на сервере из архивов:

  1. Загрузите архивы с пакетами требуемых версий и соответствующие файлы контрольных сумм из репозитория https://artifacts.inno.tech/repository/<клиент>-<редакция>-raw-packages любым доступным способом.

  2. Убедитесь в целостности архивов, сравнив их контрольные суммы с контрольными суммами в соответствующих файлах.

    Например:

    shasum -a 512 -c inno-lcm-core-1.1.0.tar.gz inno-lcm-core-1.1.0.tar.gz.sha512
  3. Создайте временный каталог для распаковки и распакуйте архив:

    Например:

    mkdir inno-lcm
    tar xvf inno-lcm-core-1.1.0-amd64.tar.gz -C inno-lcm
  4. Установите Deb-пакеты стандартным способом:

    Например:

    cd inno-lcm-core/packages
    sudo apt install inno-lcm-core_1.1.0_amd64.deb

Проверка установки

После успешной установки пакетов:

  1. Распакованы архивы пакетов.

  2. Прочитан файл с конфигурацией.

  3. Создана systemd-служба lcm.

  4. Запущена служба lcm.

Для проверки статуса запуска службы lcm используйте команду:

systemctl status lcm

Настройка SaltStack

Настройка SaltStack включает этапы:

Настройка конфигурации Мастеров

Узел Мастер настраивается через главный файл конфигурации. По умолчанию файл конфигурации хранится в директории /etc/salt/master. В данном файле необходимо выполнить настройку, которая обеспечит трансляцию событий на узел Master of Masters (MoM): syndic_forward_all_events: True.

Подробную информацию о настройке главного файла конфигурации Мастера см. в официальной документации.

Дополнительно при использовании хранилища S3 в качестве пространства для хранения общих файлов конфигураций и файлов состояний выполните настройки:

  1. Создайте файл /etc/salt/master/fileserver_backend.conf и укажите в нем, что в качестве бэкенда для файлов будет использоваться хранилище S3:

    fileserver_backend:
      - s3fs
  2. В файле /etc/salt/master/s3.conf пропишите настройки подключения к хранилищу S3:

    s3.service_url: <s3_hostname>:<s3_port>
    s3.keyid: <ACCESS_KEY>
    s3.key: <SECRET_KEY>
    s3.buckets:
      - salt-bucket
    s3.path_style: True
    s3.location: <REGION>

    Где в параметре s3.buckets указана корзина с именем salt-bucket для хранения файлов состояния и формул.

    Подробное описание остальных параметров приведено в официальной документации.
  3. Выполните настройку подключения к S3 для хранения в отдельной корзине данных хранилища Pillar — создайте файл /etc/salt/master/ext_pillar.conf, в котором будет указана корзина pillar-bucket:

    ext_pillar:
      - s3:
          service_url: <s3_hostname>:<s3_port>
          keyid: <ACCESS_KEY>
          key: <SECRET_KEY>
          bucket: pillar-bucket
          multiple_env: False
          environment: base
          prefix: ''
          verify_ssl: False
          s3_cache_expire: 30
          s3_sync_on_update: True
          path_style: True
          https_enable: False
    Подробное описание всех полей приведено в официальной документации.

Настройка конфигурации Миньонов

Узел Миньон настраивается через файл конфигурации. По умолчанию файл конфигурации хранится в директории /etc/salt/minion.

Подробную информацию о настройке главного файла конфигурации Миньона см. в официальной документации.

Загрузка пользовательских формул в хранилище S3

Готовые формулы (подробнее см. раздел «Готовые формулы» документа «Руководство по эксплуатации») импортируются автоматически при установке продукта.

Чтобы загрузить пользовательские формулы (см. раздел «Пользовательские формулы» документа «Руководство по эксплуатации») и формулы-шаблоны (см. раздел «Формулы-шаблоны» документа «Руководство по эксплуатации»), используйте API для импорта Salt-формулы в хранилище S3 importFormulas (см. раздел «Метод importFormulas» документа «Описание API»).

Глоссарий

Deb-пакет (Debian package)

Формат упаковки программного обеспечения для операционной системы Debian и ее производных, таких как Ubuntu. Deb-пакет содержит программу или библиотеку, а также информацию о зависимостях и конфигурации. Он может быть установлен с помощью менеджера пакетов, например, apt-get или dpkg. Deb-пакеты облегчают установку и обновление программного обеспечения в системе, а также позволяют управлять зависимостями между пакетами.

Автоматизированное рабочее место (АРМ)

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

Операционная система (ОС)

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

Программное обеспечение (ПО)

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