Конфигурация модуля osmax-provisioner

Конфигурация бэкенда выполняется в файле application.properties, помещенном в каталог /opt/osmax-provisioner. Файл создается автоматически при установке deb/rpm-пакета osmax-core и содержит значения по умолчанию.

Пример конфигурационного файла с настройками по умолчанию
## This is an example of `application.properties` file as main configuration file for osmax-provisioner backend

###############################################################################
# HTTP server properties section                                              #
###############################################################################

## Main application port
quarkus.http.port=8082

###############################################################################
# REST clients common configuration                                           #
###############################################################################

## SSL connection parameters sections.
## To enable accessing REST endpoints via HTTPS uncomment two following parameters:
#quarkus.rest-client.trust-store=/etc/ssl/certs/java/cacerts
#quarkus.rest-client.trust-store-password=changeit
## Optionally if the custom truststore is used:
## To change the format use one of JKS, JCEKS, P12, PKCS12, PFX. Default format is JKS
#quarkus.rest-client.trust-store-type=PKCS12
## For disabling SSL connection verification you can use option below
#quarkus.rest-client.remote-access.trust-all=true

###############################################################################
# Security section                                                            #
###############################################################################

## Enable/disable authentication
lcm.provisioner.security.disable-authentication=false

## Enable/disable role-based authorization
lcm.provisioner.security.rbac.enabled=false

## osmax-core base url (source of user permissions info)
# Should be set even if lcm.provisioner.security.rbac.enabled is false
# To enable access via HTTPS use corresponding prefix in base url
# and configure REST client using REST clients common configuration section above
quarkus.rest-client."tech.inno.lcm.provisioner.security.OsmaxPermissionsService".url=<osmax-core base url>

## Kerberos authentication configuration section
## There are 2 alternative options for defining Kerberos credentials [principal realm, name and password]:
## 1) via setting values in properties directly
## 2) via setting path to keytab file
##
## Direct Kerberos credentials definition:
quarkus.kerberos.service-principal-name=<service_principal_name>
quarkus.kerberos.service-principal-realm=<service.domain>
quarkus.kerberos.service-principal-password=<service_principal_password>
## Direct Kerberos credentials definition for REST client, reuse service settings:
kerberos-client.user-principal-name=${quarkus.kerberos.service-principal-name}
kerberos-client.user-principal-password=${quarkus.kerberos.service-principal-password}
kerberos-client.user-principal-realm=${quarkus.kerberos.service-principal-realm}
kerberos-client.service-principal-name=${quarkus.kerberos.service-principal-name}
## Kerberos keytab file definition:
#quarkus.kerberos.keytab-path=</path/to/keytab/file>
#kerberos-client.keytab-path=</path/to/keytab/file>
## Enables Kerberos authentication debug mode
#quarkus.kerberos.debug=true
#kerberos-client.debug=true
## REST client debug
#quarkus.rest-client.logging.scope=request-response
#quarkus.rest-client.logging.body-limit=50
#quarkus.log.category."org.jboss.resteasy.reactive.client.logging".level=DEBUG

###############################################################################
# Database properties section                                                 #
###############################################################################

## Common configuration for datasources
quarkus.datasource.username=<db-username>
quarkus.datasource.password=<db-password>
## Reactive datasource configuration for app
quarkus.datasource.reactive.url=postgresql://<db-host>:<db-port>/<db-name>
## Datasource configuration for Liquibase
quarkus.datasource.jdbc.url=jdbc:postgresql://<db-host>:<db-port>/<db-name>

## Liquibase parameters which are used in changelog files
quarkus.liquibase.change-log-parameters.index_tablespace=pg_default
quarkus.liquibase.change-log-parameters.data_tablespace=pg_default
quarkus.liquibase.change-log-parameters.installation_distro_repository_url=http://<astra-linux-repository-location>
quarkus.liquibase.change-log-parameters.installation_distro_kernel=</path/to/kernel>
quarkus.liquibase.change-log-parameters.installation_distro_initrd=</path/to/initrd>
quarkus.liquibase.change-log-parameters.distro_repository_hostname=<astra-linux-repository-location>
quarkus.liquibase.change-log-parameters.distro_repository_directory=</path/to/repository>

###############################################################################
# Template engine properties section                                          #
###############################################################################

## To specify custom template placeholders which can be used in Jinja templates use a key-value format like
## 'lcm-provisioner.template-engine.template-placeholders.my-custom-placeholder=my-value-for-custom-placeholder'
## Be aware that specified custom template placeholders
## should be used in exact format as they are specified in this configuration
lcm.provisioner.template-engine.template-placeholders.osmax_provisioner_base_url=http://<osmax-provisioner-host>:<port>
lcm.provisioner.template-engine.template-placeholders.unattended_install_file_url=/v1/unattended_install_files

###############################################################################
# Installation process properties section                                     #
###############################################################################

lcm.provisioner.installation-process.steps.READY_TO_INSTALL=\u0413\u043E\u0442\u043E\u0432\u043E \u043A \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0435
lcm.provisioner.installation-process.steps.IN_PROCESS_EARLY=\u0417\u0430\u043F\u0443\u0449\u0435\u043D \u043F\u0440\u043E\u0446\u0435\u0441\u0441 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0438 Astra Linux SE
lcm.provisioner.installation-process.steps.INSTALL_ERROR_KERNEL=\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F \u0444\u0430\u0439\u043B\u0430 kernel
lcm.provisioner.installation-process.steps.INSTALL_ERROR_INITRD=\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F \u0444\u0430\u0439\u043B\u0430 initrd
lcm.provisioner.installation-process.steps.INSTALL_ERROR_BOOT=\u041E\u0448\u0438\u0431\u043A\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0438 \u044F\u0434\u0440\u0430
lcm.provisioner.installation-process.steps.FINISHED=\u041E\u0421 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u0430

# Installed machines export scheduler configuration
lcm.provisioner.os-installed-machine-scheduler.cron.expression=0 */10 * ? * *
lcm.provisioner.completed-machines.search.limit.size=100

###############################################################################
# S3 integration section                                                      #
###############################################################################

## S3 server configuration
lcm.provisioner.s3.server-uri=http://<s3-host>:<s3-port>
lcm.provisioner.s3.access-key-id=<s3-access-key-id>
lcm.provisioner.s3.secret-access-key=<s3-secret-access-key>
lcm.provisioner.s3.region=ru-location-1

## Path to ISO images bucket where generated ISO images will be located
lcm.provisioner.s3.bootable-images-bucket-name=os-installation-iso-images-bucket

###############################################################################
# Kafka integration section                                                   #
###############################################################################

mp.messaging.connector.smallrye-kafka.bootstrap.servers=localhost:19092
mp.messaging.outgoing.machine.topic=provisioner-topic

## Kafka SSL connection parameters section.
## To enable SSL connection mode uncomment three following parameters:
#mp.messaging.connector.smallrye-kafka.security.protocol=SSL
#mp.messaging.connector.smallrye-kafka.ssl.truststore.location=/etc/ssl/certs/java/cacerts
#mp.messaging.connector.smallrye-kafka.ssl.truststore.password=changeit
## Optionally if the custom truststore is used:
## To change the format use one of JKS, JCEKS, P12, PKCS12, PFX. Default format is JKS
#mp.messaging.connector.smallrye-kafka.ssl.truststore.type=PKCS12

## To enable mutual TLS connection mode uncomment three following parameters, along with configuration above:
#mp.messaging.connector.smallrye-kafka.ssl.keystore.location=/opt/osmax-provisioner/keystore.jks
#mp.messaging.connector.smallrye-kafka.ssl.keystore.password=keystore@12345
## Optionally if the custom keystore is used:
## To change the format use one of JKS, JCEKS, P12, PKCS12, PFX. Default format is JKS
#mp.messaging.connector.smallrye-kafka.ssl.keystore.type=PKCS12

###############################################################################
# Logging section                                                             #
###############################################################################

# Common logging config
quarkus.log.file.enable=true
quarkus.log.json.file.enable=true
quarkus.log.json.console.enable=false

# Json log format config
quarkus.log.json.fields.mdc.flat-fields=true
quarkus.log.json.fields.timestamp.date-format=yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
quarkus.log.json.fields.timestamp.zone-id=UTC

# File logging config
quarkus.log.file.path=/var/log/osmax/provisioner/osmax-provisioner.log
quarkus.log.file.rotation.max-file-size=10M
quarkus.log.file.rotation.max-backup-index=5
quarkus.log.file.rotation.file-suffix=.yyyy-MM-dd.gz

# Audit logging config
quarkus.log.handler.file.audit-handler.enable=true
quarkus.log.handler.file.audit-handler.path=/var/log/osmax/provisioner/audit-osmax-provisioner.log
quarkus.log.handler.file.audit-handler.rotation.max-file-size=10M
quarkus.log.handler.file.audit-handler.rotation.max-backup-index=50
quarkus.log.handler.file.audit-handler.rotation.file-suffix=.yyyy-MM-dd
quarkus.log.category."AUDIT".level=INFO
quarkus.log.category."AUDIT".handlers=audit-handler
quarkus.log.category."AUDIT".use-parent-handlers=false
Перед запуском systemd-службы osmax-provisioner измените права доступа к конфигурационному файлу, предоставив доступ только для пользователя, от имени которого она будет запускаться.

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

Подключение к HTTP-серверу

Наименование Описание Значение по умолчанию/Шаблон значения Пример значения

quarkus.http.port

Основной порт подключения

8082

8082

Настройка REST-клиентов

Настройки, описанные в разделе, являются опциональными и используются только при подключении по протоколу SSL.
Наименование Описание Значение по умолчанию/Шаблон значения Пример значения

quarkus.rest-client.trust-store

Путь к файлу хранилища доверенных сертификатов (truststore), который содержит сертификаты доверенных центров сертификации

/etc/ssl/certs/java/cacerts

quarkus.rest-client.trust-store-password

Пароль для доступа к хранилищу доверенных сертификатов

changeit

truststore@12345

quarkus.rest-client.trust-store-type

Тип хранилища, например JKS, JCEKS, P12, PKCS12, PFX. Если значение не задано, по умолчанию используется значение JKS

PKCS12

quarkus.rest-client.remote-access.trust-all

Отключение проверки SSL-соединения

true

Аутентификация и авторизация

Параметры quarkus.kerberos.keytab-path и quarkus.kerberos.service-principal-<name/password/real> являются опциональными и взаимозаменяемыми. С точки зрения безопасности рекомендуется использовать keytab-файл для аутентификации в домене и указывать параметр quarkus.kerberos.keytab-path.
Наименование Описание Значение по умолчанию/Шаблон значения Пример значения

lcm.provisioner.security.disable-authentication

Включение/выключение аутентификации Kerberos. Возможные значения: true и false

false

false

lcm.provisioner.security.rbac.enabled

Включение/выключение авторизации RBAC

false

false

quarkus.rest-client."tech.inno.lcm.provisioner.security.OsmaxPermissionsService".url

(Опциональный параметр) базовый URL-адрес модуля osmax-core (источник информации о разрешениях пользователя). Должен быть установлен, даже если для параметра lcm.provisioner.security.rbac.enabled установлено значение false

<osmax-core base url>

quarkus.kerberos.service-principal-name

(Опциональный параметр) имя принципала для аутентификации Kerberos

<service_principal_name>

quarkus.kerberos.service-principal-realm

(Опциональный параметр) наименование области безопасности (realm) принципала

<service.domain>

quarkus.kerberos.service-principal-password

(Опциональный параметр) пароль принципала

<service_principal_password>

quarkus.kerberos.keytab-path

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

</path/to/keytab/file>

/opt/inno-provisioner/my_file.keytab

quarkus.kerberos.debug

(Опциональный параметр) включение/выключение отправки сообщений для отладки Kerberos. Возможные значения: true и false

true

kerberos-client.debug

(Опциональный параметр) включение/выключение отправки сообщений для отладки Kerberos-клиента. Возможные значения: true и false

true

quarkus.rest-client.logging.scope

(Опциональный параметр) уровень журналирования для REST-клиента. Значение request-response позволяет журналировать как отправляемые запросы, так и полученные ответы

request-response

quarkus.rest-client.logging.body-limit

(Опциональный параметр) лимит на количество символов в теле запроса или ответа

50

Подключение к БД

Наименование Описание Значение по умолчанию/Шаблон значения Пример значения

quarkus.datasource.username

Имя пользователя для подключения к БД

<db-username>

db-provisioner-user

quarkus.datasource.password

Пароль пользователя для подключения к БД

<db-password>

db-qwerty123

quarkus.datasource.reactive.url

Адрес подключения серверной части продукта к БД

postgresql://<db-host>:<db-port>/<db-name>

postgresql://10.6.32.156:5432:db-8082/db-provisioner

quarkus.datasource.jdbc.url

Адрес подключения к БД. Параметр используется утилитой Liquibase для актуализации схемы БД

jdbc:postgresql://<db-host>:<db-port>/<db-name>

jdbc:postgresql://10.6.32.157:8082/lcm

quarkus.liquibase.change-log-parameters.index_tablespace

Таблица пространства имен (tablespace) для индексов, создаваемых Liquibase

pg_default

pg_default

quarkus.liquibase.change-log-parameters.data_tablespace

Таблица пространства имен (tablespace) для данных, создаваемых Liquibase

pg_default

pg_default

quarkus.liquibase.change-log-parameters.installation_distro_repository_url

URL-адрес репозитория, который используется для установки дистрибутива

http://<astra-linux-repository-location>

quarkus.liquibase.change-log-parameters.installation_distro_kernel

Путь к ядру дистрибутива, которое используется при установке

</path/to/kernel>

quarkus.liquibase.change-log-parameters.installation_distro_initrd

Путь к initrd (initial ramdisk) дистрибутива, которое используется при установке

</path/to/initrd>

quarkus.liquibase.change-log-parameters.distro_repository_hostname

Имя хоста репозитория c дистрибутивами устанавливаемой ОС

<astra-linux-repository-location>

quarkus.liquibase.change-log-parameters.distro_repository_directory

Путь к директории репозитория

</path/to/repository>

Параметры шаблонов установки ОС

Наименование Описание Значение по умолчанию/Шаблон значения Пример значения

lcm-provisioner.template-engine.template-placeholders.my-custom-placeholder

(Опциональный параметр) пользовательский заполнитель (placeholder) шаблона, который может использоваться в шаблонах Jinja; задается в формате «ключ - значение»; например, пользовательскому заполнителю шаблона с именем my-custom-placeholder присвоено значение my-value-for-custom-placeholder

my-value-for-custom-placeholder

lcm.provisioner.template-engine.template-placeholders.osmax_provisioner_base_url

Базовый URL модуля установки ОС

http://<osmax-provisioner-host>:<port>

lcm.provisioner.template-engine.template-placeholders.unattended_install_file_url

URL-адрес API модуля osmax-provisioner, предоставляющего файл автоответов, сформированный по шаблону

/v1/unattended_install_files

Параметры отображения шагов в истории процесса установки

Наименование Описание Значение по умолчанию/Шаблон значения Пример значения

lcm.provisioner.installation-process.steps.<step_code>

Преобразование названий шагов (событий) процесса установки ОС в русскоязычные значения для отображения в пользовательском интерфейсе «Кабинет Администратора». Значения по умолчанию:

  • READY_TO_INSTALL — ОС готова к установке;

  • IN_PROCESS_EARLY — ОС в процессе установки;

  • INSTALL_ERROR_KERNEL — ошибка в процессе установки ОС, связанная с ядром (kernel);

  • INSTALL_ERROR_INITRD — ошибка в процессе установки ОС, связанная с Initial RAM Disk;

  • INSTALL_ERROR_BOOT — ошибка в процессе установки ОС, связанная с загрузочным процессом;

  • FINISHED — установка ОС завершена.

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

\u0413\u043E\u0442\u043E\u0432\u043E \u043A \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0435

Регистрация устройств в модуле osmax-core

Наименование Описание Значение по умолчанию/Шаблон значения Пример значения

lcm.provisioner.os-installed-machine-scheduler.cron.expression

Cron-выражение в формате quartz, которое задает расписание оповещения об устройствах, зарегистрированных в osmax-provisioner и на которых установлена операционная система

0 */10 * ? * *

0 */10 * ? * *

lcm.provisioner.completed-machines.search.limit.size

Количество сообщений, которые можно извлечь при выполнении задания

100

100

Интеграция с S3-совместимым хранилищем

Наименование Описание Значение по умолчанию/Шаблон значения Пример значения

lcm.provisioner.s3.server-uri

URI для подключения к S3-совместимому хранилищу, в котором будут храниться файлы модуля osmax-provisioner.

Для переключения взаимодействия с S3-совместимым хранилищем по протоколу SSL:

  1. Измените URI c http на https.

  2. Разместите публичный сертификат сервера S3 или сертификат выдавшего его удостоверяющего центра в системное хранилище сертификатов

http://<s3-host>:<s3-port>

http://10.6.32.156:9000

lcm.provisioner.s3.access-key-id

Идентификатор ключа (access Key) S3-совместимого хранилища

<s3-access-key-id>

provisioneradmin

lcm.provisioner.s3.secret-access-key

Секретный ключ (Secret Key) S3-совместимого хранилища

<s3-secret-access-key>

provisioneradmin

lcm.provisioner.s3.region

Название региона S3 NOTE: Для хранилища Ceph данный параметр не учитывается. Если вы используете Сeph в качестве хранилища, укажите значение default

ru-location-1

ru-location-1

lcm.provisioner.s3.bootable-images-bucket-name

Путь к бакету, в котором хранятся ISO-образы

os-installation-iso-images-bucket

os-installation-iso-images-bucket

Интеграция с Apache Kafka

Наименование Описание Значение по умолчанию/Шаблон значения Пример значения

mp.messaging.connector.smallrye-kafka.bootstrap.servers

Адрес сервера для подключения к брокеру Apache Kafka, который будет использоваться для получения сообщений от модуля osmax-provisioner

localhost:19092

localhost:19092

mp.messaging.outgoing.machine.topic

Название топика в Kafka, в который модуль osmax-provisioner будет отправлять сообщения

provisioner-topic

provisioner-topic

Настройка SSL-соединения с Apache Kafka

Параметры из данного блока являются опциональными и задаются, только если требуется SSL для Apache kafka.
Наименование Описание Значение по умолчанию/Шаблон значения Пример значения

mp.messaging.connector.smallrye-kafka.security.protocol

SSL-протокол для защищенного соединения

SSL

mp.messaging.connector.smallrye-kafka.ssl.truststore.location

Путь к файлу с сертификатами в хранилище доверенных сертификатов (truststore)

/etc/ssl/certs/java/cacerts

mp.messaging.connector.smallrye-kafka.ssl.truststore.password

Пароль для доступа к хранилищу доверенных сертификатов

changeit

truststore@12345

mp.messaging.connector.smallrye-kafka.ssl.truststore.type

Тип хранилища, например JKS, JCEKS, P12, PKCS12, PFX. Если значение не задано, по умолчанию используется значение JKS

PKCS12

Параметры ниже задаются в дополнение к другим настройкам SSL, если необходимо настроить работу в режиме mTLS (mutual TLS)

mp.messaging.incoming.salt-events-kafka.ssl.keystore.location

Путь к файлу с закрытыми ключами и сертификатами клиента в хранилище ключей (keystore)

/opt/osmax-core/keystore.jks

/opt/inno-lcm-core/keystore.jks

mp.messaging.incoming.salt-events-kafka.ssl.keystore.password

Пароль для доступа к хранилищу ключей

keystore@12345

keystore@12345

mp.messaging.connector.smallrye-kafka.ssl.keystore.type

Тип хранилища, например JKS, JCEKS, P12, PKCS12, PFX. Если значение не задано, по умолчанию используется значение JKS

PKCS12

Логирование

Наименование Описание Значение по умолчанию/Шаблон значения Пример значения

quarkus.log.file.enable

Активация логирования в файл. Возможные значения: true и false

true

true

quarkus.log.json.file.enable

Включение/выключение форматирования логов в JSON при записи в файл

true

true

quarkus.log.json.console.enable

Включение/выключение форматирования логов в JSON при выводе в консоль

false

false

quarkus.log.json.fields.mdc.flat-fields

Параметр, который указывает, что контекст MDC (Mapped Diagnostic Context) должен быть записан в плоском формате

true

true

quarkus.log.json.fields.timestamp.date-format

Формат даты и времени для поля timestamp в JSON

yyyy-MM-dd’T’HH:mm:ss.SSS’Z'

yyyy-MM-dd’T’HH:mm:ss.SSS’Z'

quarkus.log.json.fields.timestamp.zone-id

Часовой пояс для поля timestamp в JSON

UTC

UTC

quarkus.log.file.path

Путь для сохранения файлов с логами продукта

/var/log/osmax/provisioner/osmax-provisioner.log

/var/log/osmax/provisioner/osmax-provisioner.log

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

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

10М

10М

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

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

5

5

quarkus.log.file.rotation.file-suffix

Суффикс для имен файлов логов после их ротации

.yyyy-MM-dd.gz

.yyyy-MM-dd.gz

quarkus.log.handler.file.audit-handler.enable

Включение/выключение обработчика для логов аудита

true

true

quarkus.log.handler.file.audit-handler.path

Путь к файлу, в который будут записываться логи аудита

/var/log/osmax/provisioner/audit-osmax-provisioner.log

/var/log/osmax/provisioner/audit-osmax-provisioner.log

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

Максимальный размер файла логов аудита до переноса в исторический файл

10M

10M

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

Максимальное количество исторических файлов логов аудита

50

50

quarkus.log.handler.file.audit-handler.rotation.file-suffix

Суффикс для имен файлов логов аудита после их ротации

.yyyy-MM-dd

.yyyy-MM-dd

quarkus.log.category."AUDIT".level

Настройка уровня логирования. Возможные значения:

  • FATAL — сообщение об ошибке, которая привела к критическому сбою программы;

  • ERROR — сообщение об ошибке, которая привела к некритическому сбою программы;

  • WARN — предупреждение о потенциальной проблеме или необычном состоянии, которое не является ошибкой, но требует внимания;

  • INFO — информационное сообщение о ходе работы программы, которое может быть полезно для мониторинга и отладки;

  • DEBUG — детальная отладочная информация, которая помогает разработчикам выявлять и исправлять проблемы в коде;

  • TRACE — cамый низкий уровень важности, предоставляющий еще более детальную информацию, которая используется для отслеживания каждого шага алгоритма или функции.

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

quarkus.log.category.<"system module">

Пример:

quarkus.log.category."AUDIT".level=DEBUG

INFO

INFO

quarkus.log.category."AUDIT".handlers

Обработчик, который будет использоваться для категории "AUDIT"

audit-handler

audit-handler

quarkus.log.category."AUDIT".use-parent-handlers

Включение/выключение использования родительских обработчиков для категории "AUDIT"

false

false