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

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

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

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

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

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

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

## 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>
## Kerberos keytab file definition:
#quarkus.kerberos.keytab-path=</path/to/keytab/file>
## Enables Kerberos authentication debug mode
#quarkus.kerberos.debug=true

###############################################################################
# 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

###############################################################################
# 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

###############################################################################
# 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=/app/inno-osmax/logs/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=/app/inno-osmax/audit/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-службы inno-lcm-provisioner измените права доступа к конфигурационному файлу, предоставив доступ только для пользователя, от имени которого она будет запускаться.

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

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

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

quarkus.http.port

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

8082

8082

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

Параметры 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

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

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

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

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 модуля inno-lcm-provisioner, предоставляющего файл автоответов, сформированный по шаблону

/v1/unattended_install_files

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

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

lcm.provisioner.s3.server-uri

URI для подключения к S3-совместимому хранилищу, в котором будут храниться файлы модуля inno-lcm-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

Логирование

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

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

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

/app/inno-osmax/logs/osmax/provisioner/osmax-provisioner.log

/app/inno-osmax/logs/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

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

/app/inno-osmax/audit/osmax/provisioner/audit-osmax-provisioner.log

/app/inno-osmax/audit/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