Руководство по установке#

В руководстве приведены инструкции по установке компонента Динамический контент (UFTM) продукта Platform V Content Management (SDC), далее по тексту — компонент UFTM.

Системные требования#

Настройки безопасности окружения и перечень платформенных (дополнительных внешних) продуктов, используемых для установки, настройки и контроля в конечной информационной системе (далее — ИС), выбираются клиентом при разработке конечной ИС, исходя из характера обрабатываемой в ней информации и иных требований информационной безопасности (далее — ИБ), предъявляемых к ней.

Системное программное обеспечение#

Ниже представлены категории системного программного обеспечения (далее — ПО), которые обязательны или опциональны для установки, настройки, контроля и функционирования компонента UFTM.

В каждой категории перечислены все поддерживаемые продукты сторонних правообладателей. Отдельно обозначены варианты, которые рекомендует АО «СберТех» (маркировка «Рекомендовано» в столбце «Продукт, функциональная совместимость с которым подтверждена»).

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

Категория ПО

Обязательность установки (да/нет) *

Наименование ПО

Версия

Продукт, функциональная совместимость с которым подтверждена **

Описание

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

Да

ОС Альт 8 СП

altlinux-sp8-5.4.113-release

Рекомендовано. Правообладателем АО «СберТех» также рекомендована ОС – Platform V SberLinux OS Server, см. раздел «Платформенные зависимости»

Red Hat Enterprise Linux Server

7.6

Опционально

Среда контейнеризации

Да

Kubernetes

1.18 и выше

Рекомендовано. Правообладателем АО «СберТех» также рекомендована среда контейнеризации – Platform V DropApp, см. раздел «Платформенные зависимости»

Red Hat OpenShift

4.6.28

Опционально

JAVA-машина

Да

OpenJDK

11

Рекомендовано

Окружение для работы модулей компонента

СУБД

Да

PostgreSQL

14.2

Рекомендовано. Правообладателем АО «СберТех» также рекомендована СУБД, основанная на PostgreSQL – Platform V Pangolin SE (PSQ), см. раздел «Платформенные зависимости»

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

Брокер сообщений

Да

Kafka

2.7.0

Рекомендовано. Правообладателем АО «СберТех» также рекомендован брокер сообщений, основанный на Kafka, – Platform V Corax, см. раздел «Платформенные зависимости»

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

Сервис интеграции и оркестрации микросервисов в облаке

Да

Istio

1.12

Рекомендовано. Правообладателем АО «СберТех» также рекомендован сервис интеграции и оркестрации микросервисов в облаке, основанный на Istio – Platform V Synapse Service Mesh (SSM), см. раздел «Платформенные зависимости»

Сервис интеграции микросервисов в облаке

Red Hat OpenShift Service Mesh

2.0.6-2

Опционально

Система управления секретами

Нет

Secret Management АС PAM

0.11.0

Опционально

Система, обеспечивающая безопасную передачу секретов, а также их учёт и контроль на всём жизненном цикле обращения

Примечание:

*

  • Да — категория ПО обязательна для функционирования сервиса (это означает, что сервис не может выполнять свои основные функции без установки данной категории ПО).

  • Нет — категория ПО необязательна для функционирования сервиса (это означает, что сервис может выполнять свои основные функции без установки данной категории ПО).

**

  • Рекомендовано — рекомендованный правообладателем АО «СберТех» продукт.

  • Опционально — альтернативный по отношению к рекомендованному правообладателем АО «СберТех» продукт.

***

Здесь и далее поддерживаемой средой контейнеризации является Kubernetes (использование OpenShift – опционально). В инструкциях по настройке, в именах переменных и параметрах системы могут встречаться названия систем контейнеризации, которые одинаковы и применимы для обеих сред контейнеризации.

Платформенные зависимости#

Для настройки, контроля и функционирования компонента реализована интеграция с программными продуктами, правообладателем которых является АО «СберТех»:

Наименование продукта

Код

Версия продукта

Код и наименование компонента

Обязательность установки (да/нет) **

Описание

Аналог других производителей ***

Platform V Pangolin SE

PSQ

4.2.4 и выше

PSQL Pangolin

Нет

Система управления базами данных, основанная на PostgreSQL

PostgreSQL 14.2

Platform V DevOps Tools

DOT

1.3.3 и выше

CDJE Deploy tools

Да

Сервис для развертывания и обновления компонентов Платформы и приложений потребителей, для настройки и обслуживания инфраструктуры Платформы

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

Platform V Frontend Std

#FS

4.1.6 и выше

CFGA PACMAN

Нет

Сервис обеспечивает хранение, управление и предоставление по запросу параметров конфигурации библиотек, сервисов Платформы и прикладных приложений, разработанных на Платформе

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

Platform V Frontend Std

#FS

4.1.6 и выше

ASYT Asynchronous Tasks

Нет

Сервис регистрации и выполнения периодических задач

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

Platform V Frontend Std

#FS

4.1.6 и выше

STDE ЕФС.Stand In

Нет

Сервис представляет собой технологический сервис, предназначенный для предоставления сервисов Топологии

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

Platform V Frontend Std

#FS

4.1.6 и выше

FPRT Защита от внутренних отказов ЕФС

Нет

Сервис платформы ЕФС, обеспечивающий предоставление информации о здоровье экземпляров сервисов для средств мониторинга и балансировки

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

Platform V Frontend Std

#FS

4.1.6 и выше

FSCM Конфигурация развертывания Frontend Standard

Да

Конфигурация развертывания Frontend Standard

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

Platform V Frontend Std

#FS

4.1.6 и выше

IAGW Внутренний шлюз ЕФС

Да

Компонент для маршрутизации и балансировки запросов потребителей к сервисам Платформы

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

Platform V Frontend Std

#FS

4.1.6 и выше

OTTS One-Time Password (OTP)/OTT

Нет

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

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

Platform V Synapse Service Mesh

SSM

3.9

IGEG Граничный прокси

Нет

Компонент для управления трафиком, приходящим и исходящим из проекта одной системы

Istio proxy 1.17

SVPX Сервисный прокси

Нет

Компонент для маршрутизации и обеспечения безопасности трафика между приложениями

Istio proxy 1.17

POLM Управление политиками

Нет

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

Istio control plane 1.17

Platform V Synapse Enterprise Integration

SEI

2.10 и выше

SRLS Synapse Rate Limiter

Нет

Сервис ограничения (квотирования) входящих запросов. Необходим для ограничения прикладной нагрузки со стороны потребителя на защищаемые сервисы, исполняемые в рамках Synapse Service Mesh

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

Platform V Monitor

OPM

4.2 и выше

MONA Объединенный мониторинг Unimon

Нет

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

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

LOGA Журналирование

Нет

Сервис для хранения лог-файлов

Любой сервис сбора записей о событиях, совместимый с fluent-bit, например: Elasticsearch, InfluxDB

Platform V Audit SE

AUD

4.2 и выше

AUDT Аудит

Да

Сервис для аудирования событий

Отсутствует, без компонента AUDT сбор событий аудита невозможен

Platform V Corax

KFK

7.272.0 и выше

KFKA Corax

Нет

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

Apache Kafka 2.7.0

* Применимо для обеспечения обратной совместимости.

**

  • Да — компонент или продукт необходим для функционирования сервиса (это означает, что сервис не может выполнять свои основные функции без установки данного компонента).

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

*** Рекомендуется установка программного продукта, правообладателем которого является АО «СберТех», при этом не исключена возможность (допускается правообладателем) использования аналога других производителей. Аналоги, в отношении которых продукт успешно прошел испытания и подтвердил свою работоспособность, указаны в разделе «Системное программное обеспечение».

Аппаратные требования#

Для проекта (namespace), в котором развертывается компонент, должны быть выданы следующие квоты по ресурсам:

  • Ядра ЦПУ — 16

  • Оперативная память — 32 GB

Квоты ресурсов для элемента развертывания dyncontent_service:

Контейнер

Запрашиваемое количество ядер ЦПУ (m)

Лимит ядер ЦПУ (m)

Запрашиваемое количество оперативной памяти (Mi)

Лимит оперативной памяти (Mi)

ufs-dynamic-content-service

300

700

512

1638.4

istio-proxy

200

300

256

512

vault-agent

50

51

128

129

Квоты ресурсов для элемента развертывания dyncontent_upload-service:

Контейнер

Запрашиваемое количество ядер ЦПУ (m)

Лимит ядер ЦПУ (m)

Запрашиваемое количество оперативной памяти (Mi)

Лимит оперативной памяти (Mi)

ufs-dynamic-content-upload-service

400

600

512

1638.4

istio-proxy

200

300

256

512

vault-agent

50

51

128

129

Рекомендуемое количество экземпляров элементов развертывания:

Элемент развертывания

Количество

dyncontent_service

2

dyncontent_upload-service

2

Конфигурация ресурсов может быть скорректирована по результатам проведения нагрузочного тестирования или опытной эксплуатации компонента.

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

Архив с бинарными артефактами компонента#

Архив содержит бинарные артефакты для работы компонента, в том числе скрипты миграции БД.

Директория архива

Описание содержимого директории

./package/bh

Бинарные артефакты сервиса выдачи шаблонов и сервиса загрузки шаблонов

./package/db

Скрипты миграции БД, запакованные в zip-архив

./package/docker/dyncontent_service

Файлы, описывающие сборку docker-образа сервиса выдачи шаблонов, а также файл с хэш-суммой собранного и опубликованного образа в АО «СберТех»

./package/docker/dyncontent_upload-service

Файлы, описывающие сборку docker-образа сервиса загрузки шаблонов шаблонов, а также файл с хэш-суммой собранного и опубликованного образа в АО «СберТех»

./package/sdk/mvn

Артефакты клиентского модуля сервиса выдачи шаблонов

Архив с конфигурацией развертывания компонента#

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

Директория архива

Описание содержимого директории

./package/conf/config/parameters

Файлы с описанием стендозависимых параметров развертывания

./package/conf/data/logger

Файлы с данными для импорта в компонент LOGA

./package/conf/data/sup2

Файлы с данными для импорта в компонент CFGA

./package/conf/data/task_scheduler

Файлы с данными для импорта в компонент ASYT

./package/conf/global/iag

Файлы с конфигурацией компонента IAGW

./package/conf/iag

Файлы с конфигурацией компонента IAGW

./package/conf/inventory

Файлы с параметрами серверов, на которые будет осуществляться установка

./package/conf/k8s/base

Шаблоны манифестов Kubernetes

./package/conf/k8s/overrides/openshift

Шаблоны манифестов OpenShift, дополняющие или заменяющие шаблоны манифестов Kubernetes

./package/conf/limits

Файл с конфигурацией лимитов, применяемых в компоненте IAGW

./package/conf/macros_and_templates

Макросы Jinja, используемые в шаблонах манифестов Kubernetes и OpenShift

./package/docker/dyncontent_service

Файл с хэш-суммой собранного и опубликованного docker-образа сервиса выдачи шаблонов в АО «СберТех»

./package/docker/dyncontent_upload-service

Файл с хэш-суммой собранного и опубликованного docker-образа сервиса загрузки шаблонов в АО «СберТех»

Установка#

Установка компонента UFTM автоматизированным способом производится с помощью инструментов продукта Platform V DevOps Tools (DOT). Конфигурация компонента UFTM хранится в git-репозитории и импортируется из дистрибутива компонента UFTM.

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

Порядок выполнения установки:

  1. Настройка СУБД.

  2. Импорт конфигурации компонента UFTM в репозиторий.

  3. Настройка конфигурации компонента UFTM.

  4. Установка дистрибутива компонента UFTM.

Важно. Если ранее была выполнена установка с интеграцией с платформенными компонентами из #FS версии 4.1.3 и выше, то перед установкой компонента с интеграцией с платформенными компонентами из #FS версии 4.1.6 необходимо выполнить шаги из раздела «Откат изменений для интеграции с платформенными компонентами из продукта #FS» документа «Особенности интеграции с компонентами Frontend Standard (#FS)»

Настройка СУБД#

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

  1. Создайте схему БД.

  2. Создайте пользователя для взаимодействия со схемой БД из компонента UFTM (пользователь БД компонента).

  3. Создайте пользователя для выполнения liquibase-скриптов.

  4. Создайте табличные пространства.

  5. Выдайте права на изменение схемы пользователю для выполнения liquibase-скриптов.

  6. Выдайте полные права пользователю для взаимодействия со схемой БД из компонента UFTM на создаваемые пользователем для выполнения liquibase-скриптов объекты.

Параметры, используемые во время выполнения SQL-скриптов настройки БД#

database_name_placeholder           = <имя БД>
schema_name_placeholder             = uftm_<суффикс_блока>
user_name_placeholder               = uftm_<суффикс_блока>
user_password_placeholder           = '<пароль пользователя БД>'
ts_data_placeholder                 = uftm_ts_data
ts_data_location_placeholder        = '<путь до каталога табличного пространства>'
ts_idx_placeholder                  = uftm_ts_idx
ts_idx_location_placeholder         = '<путь до каталога табличного пространства>'
liquibase_user_name_placeholder     = '<имя пользователя БД для выполнения liquibase-скриптов>'
liquibase_user_password_placeholder = '<пароль пользователя БД для выполнения liquibase-скриптов>'

Создание схемы БД#

CREATE SCHEMA :schema_name_placeholder;

Создание пользователя для взаимодействия со схемой БД из компонента UFTM#

CREATE USER :user_name_placeholder WITH ENCRYPTED PASSWORD :user_password_placeholder;
ALTER USER :user_name_placeholder VALID UNTIL 'INFINITY';
ALTER USER :user_name_placeholder SET search_path = :schema_name_placeholder;
GRANT CONNECT ON DATABASE :database_name_placeholder TO :user_name_placeholder;
GRANT ALL ON SCHEMA :schema_name_placeholder TO :user_name_placeholder;
GRANT USAGE ON SCHEMA :schema_name_placeholder TO :user_name_placeholder;

Создание пользователя для выполнения liquibase-скриптов#

CREATE USER :liquibase_user_name_placeholder WITH ENCRYPTED PASSWORD :liquibase_user_password_placeholder;
ALTER USER :liquibase_user_name_placeholder VALID UNTIL 'INFINITY';
ALTER USER :liquibase_user_name_placeholder SET search_path = :schema_name_placeholder;
GRANT CONNECT ON DATABASE :database_name_placeholder TO :liquibase_user_name_placeholder;
GRANT ALL ON SCHEMA :schema_name_placeholder TO :liquibase_user_name_placeholder;
GRANT USAGE ON SCHEMA :schema_name_placeholder TO :liquibase_user_name_placeholder;

Создание табличных пространств#

Перед созданием табличных пространств необходимо создать каталоги, в которых будут располагаться файлы табличных пространств. Каталоги должны быть пустыми и принадлежать пользователю ОС, под которым запущен экземпляр СУБД.

CREATE TABLESPACE :ts_data_placeholder OWNER :liquibase_user_name_placeholder LOCATION :ts_data_location_placeholder;
CREATE TABLESPACE :ts_idx_placeholder OWNER :liquibase_user_name_placeholder LOCATION :ts_idx_location_placeholder;

Выдача прав на изменение схемы пользователю для выполнения liquibase-скриптов#

Пользователь для выполнения liquibase-скриптов должен обладать всем набором прав на изменение созданной схемы БД. Пример выдачи прав на изменение схемы:

GRANT ALL PRIVILEGES ON SCHEMA :schema_name_placeholder TO :liquibase_user_name_placeholder;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA :schema_name_placeholder TO :liquibase_user_name_placeholder;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA :schema_name_placeholder TO :liquibase_user_name_placeholder;
GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA :schema_name_placeholder TO :liquibase_user_name_placeholder;
GRANT ALL PRIVILEGES ON ALL ROUTINES IN SCHEMA :schema_name_placeholder TO :liquibase_user_name_placeholder;
GRANT ALL PRIVILEGES ON ALL PROCEDURES IN SCHEMA :schema_name_placeholder TO :liquibase_user_name_placeholder;

Выдача полных прав пользователю для взаимодействия со схемой БД из компонента UFTM на создаваемые объекты БД#

ALTER DEFAULT PRIVILEGES FOR USER :liquibase_user_name_placeholder IN SCHEMA :schema_name_placeholder GRANT ALL PRIVILEGES ON TABLES TO :user_name_placeholder;
ALTER DEFAULT PRIVILEGES FOR USER :liquibase_user_name_placeholder IN SCHEMA :schema_name_placeholder GRANT ALL PRIVILEGES ON SEQUENCES TO :user_name_placeholder;
ALTER DEFAULT PRIVILEGES FOR USER :liquibase_user_name_placeholder IN SCHEMA :schema_name_placeholder GRANT ALL PRIVILEGES ON FUNCTIONS TO :user_name_placeholder;
ALTER DEFAULT PRIVILEGES FOR USER :liquibase_user_name_placeholder IN SCHEMA :schema_name_placeholder GRANT ALL PRIVILEGES ON ROUTINES TO :user_name_placeholder;

Импорт конфигурации компонента UFTM в репозиторий#

Для импорта конфигурации компонента UFTM в репозиторий в Deploy job выполните следующее:

  1. Нажмите кнопку Собрать с параметрами.

  2. Укажите значения для параметров:

    1. CONFIG_DIR

    2. SUBSYSTEM

    3. COMPONENTS

    4. SECTOR

    5. OSE_CLUSTERS

    6. DISTRIB_VERSION

    7. PARAMS:

      1. В секции «Репозиторий\ветка с настройками ФП» выберите ветку в репозитории с конфигурацией компонента UFTM. При необходимости создайте ветку в репозитории с конфигурацией компонента UFTM, руководствуясь документацией продукта Platform V DevOps Tools (DOT).

      2. Выберите playbook MIGRATION_FP_CONF.

  3. Нажмите кнопку Собрать.

Назначение списков сценариев для запуска (playbooks) описано в документации продукта Platform V DevOps Tools (DOT).

Настройка конфигурации компонента UFTM#

В разделе описана настройка минимального набора параметров, необходимого для работы компонента UFTM. Полный список доступных для настройки параметров приведен в разделе «Конфигурирование» документа «Руководство по системному администрированию». Настройка интеграции со следующими компонентами не требуется (используются значения параметров по умолчанию):

  • Asynchronous Tasks (ASYT) продукта Platform V Frontend Std (#FS)

  • Журналирование (LOGA) продукта Platform V Monitor (OPM)

  • Объединенный мониторинг Unimon (MONA) продукта Platform V Monitor (OPM)

  • ЕФС.Stand In (STDE) продукта Platform V Frontend Std (#FS)

  • Защита от внутренних отказов ЕФС (FPRT) продукта Platform V Frontend Std (#FS)

  • Аудит (AUDT) продукта Platform V Audit SE (AUD)

  • PACMAN (CFGA) продукта Platform V Frontend Std (#FS)

Настройка интеграции с СУБД#

Руководствуясь документацией продукта Platform V DevOps Tools (DOT), необходимо заполнить следующие параметры в репозитории с конфигурацией стенда (common-репозитории):

Название

Описание

Значение

Конфигурационный файл

jdbc.uftm_postgres.url

URL подключения к БД. URL должен содержать адрес одного сервера БД в формате "IP-адрес:порт"

_global.jdbc.conf

jdbc.liquibase_postgres.user

Имя пользователя БД для выполнения liquibase-скриптов

Имя пользователя БД, который обладает всем набором прав на изменение схемы БД

_passwords.conf

jdbc.liquibase_postgres.password

Пароль пользователя БД, имя которого указано в параметре jdbc.liquibase_postgres.user

Пароль пользователя БД, который обладает всем набором прав на изменение схемы БД

_passwords.conf

DB_SCHEMA_SUFFIX

Суффикс имени схемы БД

Суффикс имени схемы БД, например, имя блока или контура, на который устанавливается компонент UFTM

common.conf.yml

jdbc.uftm_postgres.user

Имя пользователя БД для взаимодействия со схемой БД из компонента UFTM

Имя пользователя БД, который обладает набором прав для взаимодействия со схемой БД

_passwords.conf

Настройка аутентификации#
Аутентификация по паролю#

Для настройки аутентификации в СУБД с использованием пароля необходимо:

  1. Настроить правило аутентификации в СУБД:

    - hostnossl :database_name_placeholder :user_name_placeholder :host_ip_mask md5
    
  2. Указать пароль пользователя БД в параметре jdbc.uftm_postgres.password в репозитории с конфигурацией стенда в файле _passwords.conf.

  3. Включить аутентификацию по паролю, указав значение false в параметре ufs-dynamic-content.jdbc.ssl.enabled в репозитории с конфигурацией компонента в файле ufsdyncontent.all.conf. Аутентификация по паролю включена по умолчанию.

Аутентификация по сертификату (опционально)#

Для настройки аутентификации в СУБД с использованием сертификата необходимо:

  1. Настроить правило аутентификации в СУБД:

    - hostssl :database_name_placeholder :user_name_placeholder :host_ip_mask cert
    
  2. Выпустить сертификат:

    1. Сгенерировать ключевую пару.

    2. Создать запрос на выпуск сертификата с именем субъекта (CN), равным значению параметра jdbc.uftm_postgres.user.

    3. Отправить запрос на выпуск сертификата в удостоверяющий центр.

    4. Импортировать в хранилище сертификатов, путь к которому указан в параметре ufs-dynamic-content.ose.secret.db.certs.keystore.file-path:

      1. Сертификат удостоверяющего центра с alias, определяемым параметром ufs-dynamic-content.ose.secret.db.root-cert.aliases

      2. Выпущенный сертификат с alias, определяемым параметром ufs-dynamic-content.ose.secret.db.cert.alias.

  3. Включить аутентификацию по сертификату, указав значение true в параметре ufs-dynamic-content.jdbc.ssl.enabled в репозитории с конфигурацией компонента в файле ufsdyncontent.all.conf.

Подробно настройка правил аутентификации описана в «Руководстве по системному администрированию компонента Pangolin».

Настройка интеграции с компонентом One-Time Password (OTP)/OTT (OTTS) продукта Platform V Frontend Std (#FS)#

Настройка сертификатов#
  1. Сгенерировать ключевую пару.

  2. Создать запрос на выпуск сертификата с именем субъекта, равного значению параметра ufs-dynamic-content.ose.egress.ott.module.id

  3. Отправить запрос на выпуск сертификата в удостоверяющий центр.

  4. Импортировать в хранилище сертификатов, путь к которому указан в параметре ssl.ose.istio.keyStore.egress.KeyStoreFromFile:

    1. сертификат удостоверяющего центра.

    2. выпущенный сертификат с alias, определяемым параметром ufs-dynamic-content.ose.egress.ott.client.cert.alias.

Порядок выпуска и импорта сертификатов в хранилище описан в разделе «Управление ключами и сертификатами» документа «Руководство по системному администрированию».

Настройка интеграции с брокером Kafka CMS#

Создание topic#

Создать в Kafka следующие topic:

Название

Описание

Параметр с названием topic

Конфигурационный файл, в котором описан параметр

ufs-ul-sbercms-content-data

Загрузка пакетов изменений шаблонов из мастер-системы

ufs-dynamic-content-upload-service.kafka.upload-topic-name

ufsdyncontent-upload-service.conf

ufs-sbercms-content-acknowledgement

Уведомление мастер-системы о статусе обработки пакета изменений шаблонов

ufs-dynamic-content-upload-service.kafka.notification-topic-name

ufsdyncontent-upload-service.conf

Настройка сертификатов#
  1. Сгенерировать ключевую пару.

  2. Создать запрос на выпуск сертификата с именем субъекта, равного значению параметра ufs-dynamic-content.ose.egress.ott.module.id.

  3. Отправить запрос на выпуск сертификата в удостоверяющий центр.

  4. Импортировать в хранилище сертификатов, путь к которому указан в параметре ufs-dynamic-content.k8s.istio.egress.secret.cms.kafka.certs.keystore.file-path:

    1. Сертификат удостоверяющего центра с alias, определяемым параметром ufs-dynamic-content.k8s.istio.egress.secret.cms.kafka.root-cert.aliases.

    2. Выпущенный сертификат с alias, определяемым параметром ufs-dynamic-content.k8s.istio.egress.secret.cms.kafka.cert.alias.

Порядок выпуска и импорта сертификатов в хранилище описан в разделе «Управление ключами и сертификатами» документа «Руководство по системному администрированию».

Настройка параметров#

В репозитории с конфигурацией компонента UFTM необходимо заполнить следующие параметры:

Название

Описание

Значение

Конфигурационный файл

ufs-dynamic-content.k8s.istio.egress.common.cms.kafka.servers

Параметры подключения к серверам Kafka для перенаправления трафика через Egress

Параметры подключения в формате "FQDN-адрес:IP-адрес:порт сервера Kafka:протокол исходящего трафика из Namespace:порт Egress Gateway:протокол обмена внутри Namespace", перечисленные через точку с запятой

ufsdyncontent.istio.all.conf

Настройка интеграции с брокером Kafka компонентов Аудит (AUDT), Журналирование (LOGA), Объединенный мониторинг Unimon (MONA)#

Настройка сертификатов#
  1. Сгенерировать ключевую пару.

  2. Создать запрос на выпуск сертификата.

  3. Отправить запрос на выпуск сертификата в удостоверяющий центр.

  4. Импортировать в хранилище сертификатов, путь к которому указан в параметре ufs-dynamic-content.k8s.istio.egress.secret.kafka.certs.keystore.file-path:

    1. Сертификат удостоверяющего центра с alias, определяемым параметром ufs-dynamic-content.k8s.istio.egress.secret.kafka.root-cert.aliases.

    2. Выпущенный сертификат с alias, определяемым соответствующим параметром:

      1. ufs-dynamic-content.k8s.istio.egress.secret.logger.kafka.cert.alias.

      2. ufs-dynamic-content.k8s.istio.egress.secret.ufs-audit.kafka.cert.alias.

      3. ufs-dynamic-content.k8s.istio.egress.secret.union-audit.kafka.cert.alias.

      4. ufs-dynamic-content.k8s.istio.egress.secret.monitoring.kafka.cert.alias.

Порядок выпуска и импорта сертификатов в хранилище описан в разделе «Управление ключами и сертификатами» документа «Руководство по системному администрированию».

Настройка интеграции с системой управления секретами (опционально)#

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

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

  • сертификатами для установки mTLS-соединения для HTTPS-взаимодействий на ingress/egress proxy;

  • сертификатами для аутентификации в БД;

  • именем пользователя и паролем для аутентификации в БД;

  • сертификатами для установки mTLS-соединения с кластерами Kafka компонентов Аудит (AUDT), Журналирование (LOGA), Объединенный мониторинг Unimon (MONA);

  • сертификатами для установки mTLS-соединения с кластером Kafka внешней CMS;

  • сертификатами для установки mTLS-соединения с компонентом One-Time Password (OTP)/OTT (OTTS) из OTT sidecar;

  • сертификатами для установки mTLS-соединения с кластерами Kafka компонентов Аудит (AUDT), Журналирование (LOGA), Объединенный мониторинг Unimon (MONA) из OTT sidecar.

Для настройки интеграции необходимо:

  • включить интеграцию с системой управления секретами, указав значение true для параметра ufs-dynamic-content.k8s.configmap.hashicorp.enabled;

  • включить интеграцию с системой управления секретами для OTT sidecar, указав значение true для параметра ufs-dynamic-content.ott.k8s.configmap.hashicorp.enabled;

  • создать namespace в системе управления секретами и указать имя созданного namespace в параметре ufs-dynamic-content.k8s.deployment.spec.template.metadata.annotations.vault.hashicorp.com.namespace;

  • настроить метод аутентификации AppRole, имя созданной AppRole роли указать в параметре ufs-dynamic-content.k8s.deployment.spec.template.metadata.annotations.vault.hashicorp.com.role;

  • настроить метод аутентификации Kubernetes;

  • создать и настроить Secrets Engines;

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

Настройка PKI Secrets Engine для управления сертификатами#

Для управления сертификатами для установки mTLS-соединений в системе управления секретами необходимо использовать PKI Secrets Engine.

Для настройки PKI Secrets Engine необходимо:

  1. Включить PKI Secrets Engine по пути :engine-path (например, /pki).

  2. Выполнить общую конфигурацию PKI Secrets Engine.

  3. Создать роль :role-name в системе управления секретами. При создании роли указать все допустимые доменные имена для сертификатов. Выпуск сертификатов будет доступен только с common name, значение которого входит в список допустимых имен. При необходимости переопределите время действия выпускаемых сертификатов, заданное в общей конфигурации PKI Secrets Engine.

  4. Указать путь :engine-path/fetch/:role-name для выпуска сертификатов в соответствующих параметрах:

    • ufs-dynamic-content.k8s.istio.egress.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-egress.certs.path

    • ufs-dynamic-content.k8s.istio.ingress.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-ingress-certs.path

    • ufs-dynamic-content.k8s.istio.egress.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-logger.kafka.certs.path

    • ufs-dynamic-content.k8s.istio.egress.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-monitoring.kafka.certs.path

    • ufs-dynamic-content.k8s.istio.egress.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-ufs-audit.kafka.certs.path

    • ufs-dynamic-content.k8s.istio.egress.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-union-audit.kafka.certs.path

    • ufs-dynamic-content.k8s.istio.egress.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-cms.kafka.certs.path

    • ott.ose.istio.egress.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-ott-certs.path

    • ott.ose.istio.ingress.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-ott-certs.path

    • ott.ose.istio.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-mq-certs.path

  5. Указать common name выпускаемых сертификатов в соответствующих параметрах:

    • ufs-dynamic-content.k8s.istio.egress.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-egress.certs.common-name

    • ufs-dynamic-content.k8s.istio.ingress.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-ingress-certs.common-name

    • ufs-dynamic-content.k8s.istio.ingress.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-logger.kafka.certs.common-name

    • ufs-dynamic-content.k8s.istio.ingress.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-monitoring.kafka.certs.common-name

    • ufs-dynamic-content.k8s.istio.ingress.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-ufs-audit.kafka.certs.common-name

    • ufs-dynamic-content.k8s.istio.ingress.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-union-audit.kafka.certs.common-name

    • ufs-dynamic-content.k8s.istio.ingress.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-cms.kafka.certs.common-name

    • ott.ose.istio.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-mq-certs.common-name

За подробной информацией по настройке PKI Secrets Engine обратитесь к документации системы управления секретами.

Управление секретами для аутентификации в БД#
Аутентификация по паролю#

Для управления именем пользователя и паролем для аутентификации в БД необходимо:

  1. Настроить правило аутентификации по паролю для пользователя БД компонента. Настройка правила аутентификации описана в разделе «Настройка интеграции с СУБД».

  2. Настроить KV Secrets Engine Version 1 в системе управления секретами.

  3. Включить аутентификацию по паролю, указав значение false в параметре ufs-dynamic-content.jdbc.ssl.enabled в репозитории с конфигурацией компонента в файле ufsdyncontent.all.conf. Аутентификация по паролю включена по умолчанию.

Для настройки KV Secrets Engine Version 1 необходимо:

  1. Включить KV Secrets Engine Version 1 по пути :engine-path (например, /kv).

  2. Создать секрет с логином и паролем пользователя БД по пути :secret-path (например, /db-creds):

Ключ

Значение

username

Логин пользователя БД

password

Пароль пользователя БД

ttl

Срок действия пароля пользователя БД

  1. Указать путь к секрету :engine-path/:secret-path в параметре ufs-dynamic-content.k8s.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-db-creds.path.

Ротация секрета производится администраторами путем замены пользователя БД.

Пример алгоритма замены пользователя:

  1. Создаются два пользователя БД с пересекающимися сроками действия пароля (grace period - пересечение сроков действия паролей, когда действуют оба пользователя. Используется для плавной замены).

  2. В KV Secrets Engine Version 1 указываются логин, пароль и срок действия первого пользователя.

  3. При наступлении grace period в KV Secrets Engine Version 1 указываются логин, пароль и срок действия второго пользователя.

  4. Далее пользователи меняются с предварительной сменой пароля.

Аутентификация по сертификату (опционально)#

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

  1. Настроить правило аутентификации по сертификату для пользователя БД компонента. Настройка правила аутентификации описана в разделе «Настройка интеграции с СУБД».

  2. Настроить PKI Secrets Engine в системе управления секретами.

  3. Включить аутентификацию по сертификату, указав значение true в параметре ufs-dynamic-content.jdbc.ssl.enabled в репозитории с конфигурацией компонента в файле ufsdyncontent.all.conf.

Для настройки PKI Secrets Engine необходимо:

  1. Выполнить пункты 1-3 инструкции из раздела «Настройка PKI Secrets Engine для управления сертификатами».

  2. Указать путь PKI Secrets Engine для выпуска сертификатов в параметре ufs-dynamic-content.k8s.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-db-certs.path.

  3. Указать common name выпускаемого сертификата в параметре ufs-dynamic-content.k8s.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-db-certs.common-name. Значение common name должно совпадать с именем пользователя БД.

Настройка параметров#

В репозитории с конфигурацией компонента UFTM необходимо заполнить нижеследующие параметры:

Общие параметры:

Название

Описание

Конфигурационный файл

ufs-dynamic-content.k8s.configmap.hashicorp.enabled

Включение интеграции с системой управления секретами (кроме OTT sidecar)

ufsdyncontent.secman.all.conf

ufs-dynamic-content.ott.k8s.configmap.hashicorp.enabled

Включение интеграции с системой управления секретами для OTT sidecar

ufsdyncontent.ott.all.conf

ufs-dynamic-content.k8s.deployment.spec.template.metadata.annotations.vault.hashicorp.com.role

AppRole - роль, полученная в системе управления секретами

ufsdyncontent.secman.all.conf

ufs-dynamic-content.k8s.deployment.spec.template.metadata.annotations.vault.hashicorp.com.namespace

Тенант в системе управления секретами

ufsdyncontent.secman.all.conf

ufs-dynamic-content.k8s.istio.egress.common.hashicorp.host

Хост системы управления секретами

ufsdyncontent.secman.istio.all.conf

ufs-dynamic-content.k8s.istio.egress.common.hashicorp.mesh.tls.port

Порт системы управления секретами

ufsdyncontent.secman.istio.all.conf

ufs-dynamic-content.k8s.istio.egress.common.hashicorp.tls.port

Порт egress proxy для
перенаправления трафика к системе управления секретами

ufsdyncontent.secman.istio.all.conf

Параметры управления сертификатами для установки mTLS-соединения на ingress/egress proxy:

Название

Описание

Конфигурационный файл

ufs-dynamic-content.k8s.istio.egress.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-egress-certs.path

Путь, используемый для обращения к системе управления секретами для выпуска сертификатов egress proxy

ufsdyncontent.secman.istio.all.conf

ufs-dynamic-content.k8s.istio.egress.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-egress-certs.common-name

Common name выпускаемого сертификата egress proxy

ufsdyncontent.secman.istio.all.conf

ufs-dynamic-content.k8s.istio.ingress.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-ingress-certs.path

Путь, используемый для обращения к системе управления секретами для выпуска сертификатов ingress proxy

ufsdyncontent.secman.istio.all.conf

ufs-dynamic-content.k8s.istio.ingress.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-ingress-certs.common-name

Common name выпускаемого сертификата ingress proxy

ufsdyncontent.secman.istio.all.conf

Параметры управления сертификатами для аутентификации в БД:

Название

Описание

Конфигурационный файл

ufs-dynamic-content.k8s.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-db-certs.path

Путь, используемый для обращения к системе управления секретами для выпуска сертификатов для аутентификации в БД

ufsdyncontent.secman.all.conf

ufs-dynamic-content.k8s.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-db-certs.common-name

Common name выпускаемого сертификата для аутентификации в БД. Значение common name должно совпадать с именем пользователя БД

ufsdyncontent.secman.all.conf

Параметры для управления именем пользователя и паролем для аутентификации в БД:

Название

Описание

Конфигурационный файл

ufs-dynamic-content.k8s.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-db-creds.path

Путь, используемый для обращения к системе управления секретами для получения имени пользователя и пароля для аутентификации в БД

ufsdyncontent.secman.all.conf

Параметры управления сертификатами для установки mTLS-соединения для взаимодействий с Kafka компонента Журналирование (LOGA) продукта Platform V Monitor (OPM), проходящих через egress proxy:

Название

Описание

Конфигурационный файл

ufs-dynamic-content.k8s.istio.egress.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-logger.kafka.certs.path

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

ufsdyncontent.secman.istio.all.conf

ufs-dynamic-content.k8s.istio.egress.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-logger.kafka.certs.common-name

Common name выпускаемого сертификата Kafka

ufsdyncontent.secman.istio.all.conf

Параметры управления сертификатами для установки mTLS-соединения для взаимодействий с Kafka компонента Объединенный мониторинг Unimon (MONA) продукта Platform V Monitor (OPM), проходящих через egress proxy:

Название

Описание

Конфигурационный файл

ufs-dynamic-content.k8s.istio.egress.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-monitoring.kafka.certs.path

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

ufsdyncontent.secman.istio.all.conf

ufs-dynamic-content.k8s.istio.egress.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-monitoring.kafka.certs.common-name

Common name выпускаемого сертификата Kafka

ufsdyncontent.secman.istio.all.conf

Параметры управления сертификатами для установки mTLS-соединения для взаимодействий с Kafka компонента Аудит (AUDT), проходящих через egress proxy:

Название

Описание

Конфигурационный файл

ufs-dynamic-content.k8s.istio.egress.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-union-audit.kafka.certs.path

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

ufsdyncontent.secman.istio.all.conf

ufs-dynamic-content.k8s.istio.egress.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-union-audit.kafka.certs.common-name

Common name выпускаемого сертификата Kafka

ufsdyncontent.secman.istio.all.conf

Параметры управления сертификатами для установки mTLS-соединения для взаимодействий с Kafka CMS, проходящих через egress proxy:

Название

Описание

Конфигурационный файл

ufs-dynamic-content.k8s.istio.egress.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-cms.kafka.certs.path

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

ufsdyncontent.secman.istio.all.conf

ufs-dynamic-content.k8s.istio.egress.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-cms.kafka.certs.common-name

Common name выпускаемого сертификата Kafka

ufsdyncontent.secman.istio.all.conf

Параметры управления сертификатами для установки mTLS-соединения для взаимодействий с компонентом One-Time Password (OTP)/OTT (OTTS) из OTT sidecar:

В составе Egress:

Название

Описание

Конфигурационный файл

ott.ose.istio.egress.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-ott-certs.path

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

ufsdyncontent.ott.all.conf

В составе Ingress:

Название

Описание

Конфигурационный файл

ott.ose.istio.ingress.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-ott-certs.path

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

ufsdyncontent.ott.all.conf

Параметры управления сертификатами для установки mTLS-соединения для взаимодействий с Kafka компонентов Журналирование (LOGA), Объединенный мониторинг Unimon (MONA), Аудит (AUDT) из OTT sidecar:

Название

Описание

Конфигурационный файл

ott.ose.istio.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-mq-certs.path

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

ufsdyncontent.ott.all.conf

ott.ose.istio.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-mq-certs.common-name

Common name выпускаемого сертификата Kafka

ufsdyncontent.ott.all.conf

Настройка интеграции с компонентом Synapse Rate Limiter (SRLS) продукта Platform V Synapse Enterprise Integration (SEI) (опционально)#

Для квотирования нагрузки используется компонент Synapse Rate Limiter (SRLS) продукта Platform V Synapse Enterprise Integration (SEI). Для настройки интеграции с компонентом нужно выполнить следующие действия:

  1. Установить компонент Synapse Rate Limiter (SRLS) продукта Platform V Synapse Enterprise Integration (SEI).

  2. Настроить квотирование нагрузки.

Установка компонента Synapse Rate Limiter (SRLS) продукта Platform V Synapse Enterprise Integration (SEI)#

Установка компонента Synapse Rate Limiter (SRLS) продукта Platform V Synapse Enterprise Integration (SEI) производится автоматизированным способом с помощью инструментов продукта Platform V DevOps Tools (DOT). Компонент устанавливается как агент по децентрализованной схеме. Процедура установки описана в документе «Руководство по установке Synapse Rate Limiter».

Пример настройки развертывания компонента Synapse Rate Limiter (SRLS) продукта Platform V Synapse Enterprise Integration (SEI) как агента для компонента UFTM в файле subsystems.json:

{
    "UFSDYNCONTENT": {
        "agents": {
          "SRLS_agent": {
            "fpi_name": "srls",
            "app_name": [
              "redis",
              "sentinel",
              "rls",
              "operator",
              "limits"
            ],
            "groupId": "sbt_PROD.CI90000055_srls",
            "artifactId": "ratelimiter",
            "version": "D-02.003.02-65"
          }
        }
    }
}
Настройка квотирования нагрузки#

Квотирование нагрузки производится в разрезе потребителя. Потребитель определяется по HTTP-заголовку с названием ufs-tenant. Настройка квотирования производится через параметр endpoints в конфигурационном файле custom_property.conf.yml. Процедура настройки описана в разделе «Развертывание компонента Synapse Rate Limiter (SRLS) продукта Platform V Synapse Enterprise Integration (SEI) по агентской схеме» документа «Руководство прикладного разработчика Synapse Rate Limiter».

Пример настройки квоты в 5 запросов в минуту для потребителя с HTTP-заголовком ufs-tenant равным test-client:

endpoints:
  [
    {
      "endpoint": "{{ lookup('custom_vars','ufs-dynamic-content.ose.istio.ingress.route.spec.host.https.appFQDN') }}:11443",
      "name": "getTemplates",
      "shortname": "gettemp",
      "overall_limit": 100,
      "by_header": {
        "header": "ufs-tenant",
        "unit": "second",
        "value": 10,
        "invokers": [
          {
            "name": "test-client",
            "header_value": "test-client",
            "unit": "second",
            "value": 5
          }
        ]
      }
    }
  ]

Настройка интеграции с компонентом Объединенный мониторинг Unimon (MONA) продукта Platform V Monitor (ORM)#

Настройка интеграции с компонентом Объединенный мониторинг Unimon (MONA) продукта Platform V Monitor (ORM) состоит в установке клиентской части компонента. Установка производится автоматизированным способом с помощью инструментов продукта Platform V DevOps Tools (DOT). Компонент устанавливается как агент. Процедура установки описана в документе «Руководство по установке клиентской части».

Пример настройки развертывания компонента Объединенный мониторинг Unimon (MONA) продукта Platform V Monitor (ORM) как агента для компонента UFTM в файле subsystems.json:

{
    "UFSDYNCONTENT": {
        "agents": {
          "MONA_CLIENT_agent": {
            "fpi_name": "opm_unimon",
            "groupId": "sbt_PROD.CI90000099_mona",
            "artifactId": "mona",
            "version": "D-4.1.0-536_client_CFG_ALL",
            "exclude": [
              "package/conf/k8s/overrides/openshift/istio/deployments/egress/egress-dc.yaml",
              "package/conf/k8s/overrides/openshift/istio/deployments/ingress/ingress-dc.yaml",
              "package/conf/k8s/overrides/openshift/istio/deployments/ingress/ingress-route.yaml",
              "package/conf/k8s/overrides/openshift/istio/deployments/ingress/unimon-geo-route.yaml",
              "package/conf/k8s/base/istio/deployments/ingress/ingress-dc.yaml",
              "package/conf/k8s/base/istio/deployments/ingress/ingress-route.yaml",
              "package/conf/k8s/base/istio/deployments/ingress/ingress-geo.yaml",
              "package/conf/k8s/base/istio/deployments/ingress/ingress-svc.yaml",
              "package/conf/k8s/base/istio/deployments/egress/egress-dc.yaml",
              "package/conf/k8s/base/istio/deployments/egress/egress-svc.yaml"
            ]
          }
        }
    }
}

Настройка интеграции с компонентом Журналирование ЕФС (LOGA) продукта Platform V Monitor (ORM)#

Серверы LOGA могут быть идентичны серверам MONA

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

  1. В параметр ufs-dynamic-content.k8s.istio.egress.common.cms.kafka.servers нужно прописать серверы LOGA (в том числе указать порты для проксирования на egress). Пример заполнения параметра:

ufs-dynamic-content.k8s.istio.egress.common.logger.kafka.servers=!ext-abyss-kafka-01.opsmon.sbt:10.21.28.37:9093:TCP:9131:TCP;ext-abyss-kafka-02.opsmon.sbt:10.21.28.38:9093:TCP:9132:TCP;ext-abyss-kafka-03.opsmon.sbt:10.21.28.39:9093:TCP:9133:TCP
  1. Дальше в файле ufsdyncontent.all.conf указать серверы из предыдущего пункта (без портов проксирования на egress) в параметр ufs-logger.kafka.bootstrap.servers

  2. В том же файле в параметре ufs-logger.kafka.topic указать топик

  3. После указания указанных выше параметров необходимо осуществить redeploy

  4. При переключении на серверы LOGA может произойти нарушение в работоспособности unimon agent. Чтобы этого избежать нужно в конфигурационных файлах unimon agent отключить шифрование на прикладных pods. Например, в файле opm_unimon.unimon-sender.conf выставить kafka.ssl.enabled=false. Повторить аналогично для других конфигурационных файлов unimon

  5. Выполнить redeploy unimon

Переключение между контрольными панелями#

Для переключения с Istio control plane на компонент Управление политиками (POLM), необходимо выполнить следующие шаги:

  1. Отключить namespace, в который устанавливается UFTM, от Istio control plane

  2. Выполнить команду:

kubectl label namespaces <component_ns> istio.io/rev=<polm_ns> - присвоение namespace, в который устанавливается UFTM, лейбл istio.io/rev со значением namespace POLM
  1. В случае, если изменился адрес контрольной панели, необходимо внести изменения в multicluster.json репозитория common При переключении с POLM на Istio control plane выполняются аналогичные действия.

Установка дистрибутива компонента#

Для установки дистрибутива компонента UFTM необходимо в Deploy job выполнить следующее:

  1. Нажать кнопку Собрать с параметрами.

  2. Указать значения для параметров:

    1. CONFIG_DIR

    2. SUBSYSTEM

    3. COMPONENTS

    4. SECTOR

    5. OSE_CLUSTERS

    6. DISTRIB_VERSION

    7. PARAMS:

      1. В секции «Репозиторий\ветка с настройками ФП» выбрать ветку в репозитории с конфигурацией компонента UFTM.

      2. Выбрать следующие сценарии для запуска (playbooks):

        1. DB_UPDATE

        2. NGINX_MM_DEPLOY

        3. FP_CONF_CHECK

        4. OPENSHIFT_DEPLOY

        5. OPENSHIFT_INGRESS_EGRESS_DEPLOY

        6. IMPORT_SUP_PARAMS

        7. IMPORT_LOGGER_PARAMS

        8. IMPORT_TASK_SCHEDULER_PARAMS.

  3. Нажать кнопку Собрать.

Назначение списков сценариев для запуска (playbooks) описано в документации продукта Platform V DevOps Tools (DOT).

Обновление#

Обновление компонента UFTM автоматизированным способом производится с помощью инструментов продукта Platform V DevOps Tools (DOT). Обновление выполняется путем удаления предыдущей версии компонента в среде контейнеризации и установки новой. Сведения об обратной совместимости API указаны в разделе «Сохранение обратной совместимости API сервисов (REST API и Kafka messaging API)» документа «Детальная архитектура».

Для установки обновления нужно выполнить следующие действия:

  1. Удалить в АРМ компонента CFGA параметр task_scheduler.standin.modes.dynamic-content.scheduled.change-packages-processing.

  2. Установить дистрибутив компонента UFTM.

Удаление#

Для удаления компонента UFTM необходимо:

  • удалить все объекты и ресурсы в пространстве имен (namespace), где установлен компонент;

  • удалить пространство имен в среде контейнеризации;

  • удалить схему БД и объекты, связанные с ней:

    • пользователя для взаимодействия со схемой БД из компонента UFTM;

    • пользователя для выполнения liquibase-скриптов;

    • табличные пространства;

    • правило аутентификации в СУБД;

  • удалить конфигураций компонента UFTM из компонентов LOGA, AUDT, MONA, CFGA, ASYT, CDJE;

  • удалить конфигурацию компонента UFTM из шлюза (IAGW);

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

  • удалить Secrets Engine и роли для них в системе управления секретами (опционально).

Проверка работоспособности#

Проверка работоспособности компонента#

Шаг

Действие

Ожидаемый результат

Тестовые данные

1

В консоли администратора OpenShift или Kubernetes для каждого Deployment: uftm-egressgateway-ufs-dynamic-content, uftm-ingressgateway-ufs-dynamic-content, uftm-ufs-dynamic-content-service, uftm-ufs-dynamic-content-upload-service - проверить статус контейнеров во вкладе Pods

Все контейнеры находятся в статусе Ready

-

Проверки интеграции с платформенными компонентами#

Проверка интеграции с компонентом One-Time Password (OTP)/OTT (OTTS)

Шаг

Действие

Ожидаемый результат

Тестовые данные

1

Проверить в логах ott-sidecar egress-a, что token замаскирован (допустимы повторяющиеся записи для токена с полным отображением)

INFO [fbt-refresh-thread] c.s.o.b.a.c.i.t.RootTokenTask - Вернулся токен с сервера OTT ; INFO [fbt-refresh-thread] c.s.o.b.a.c.i.TokenService - Токен для вызова [JwsTokenCreateReq{tokenClaims=JwsTokenClaims(invoker=ci02649924_as_efs_ufsdyncontent_emp,receiver=null, url=null, urlEvent=null, domain=ott, encKeyParam=null,action=null, anonymous=null, tokenType=fallback,reqId=0f8db145-d539-4697-8c31-fad2584b93a7),namedAttrs={Attributes=[ott:appurn:oasis:names:tc:xacml:1.0:subject-category:access-subjecthttp://www.w3.org/2001/XMLSchema#string[ci02649924_as_efs_ufsdyncontent_emp],ott:token:typeurn:oasis:names:tc:xacml:3.0:attribute-category:environmenthttp://www.w3.org/2001/XMLSchema#string[fallback],ott:realmurn:oasis:names:tc:xacml:3.0:attribute-category:environmenthttp://www.w3.org/2001/XMLSchema#string[ott]]}}] успешно получен. Ответ от сервера ОТТ - [TokenData[token='eyJhbGciOiJFUzI1NiJ9…truncated.ngGw1_6cnpfCO6Z57pI7uUUaYQ762S2ONqqpV3wnAK6txDvYt_mx_Hh-6mI_fxD9hWsB1bAE7mKtR-pJzRbC0A';implCode='fallback';reqId='0f8db145-d539-4697-8c31-fad2584b93a7']]

-

2

Убедиться, что в АРМ компонента Журналирование (LOGA) продукта Platform V Monitor (OPM) на вкладке «Администрирование параметров» присутствуют параметры журналирования для подсистемы UFTM

В разделе Активные параметры присутствуют:
logger.local.enabled
logger.local.level
logger.local.stdout.appender.enabled
logger.remote.enabled
logger.remote.level
logger.name.level
Значения по умолчанию:
logger.remote.level = ERROR

-

3

Переключить уровень логирования в АРМ компонента Журналирование (LOGA) продукта Platform V Monitor (OPM), изменив значения параметров

В АРМ Компонента Журналирование во вкладке Таблица появляются записи с уровнями DEBUG/INFO/WARN/ERROR.

logger.remote.enabled = true
logger.remote.level = DEBUG

4

Отправить POST-запрос на эндпоинт: "protocol://host:port/ufs-dynamic-content-service/v1/templates/search-by-cms-template-id", с указанием в теле запроса несуществующих идентификаторов ["11111111-1111-1111-1111-111111111111"]

Получен ответ: { "success": true, "body": { "templates": { } } }

protocol = https
host = nginx_mm
port = 9443

5

В АРМ компонента Журналирование (LOGA) продукта Platform V Monitor (OPM), во вкладке «Таблица», найти запись о запросе и убедиться, что незамаскированный токен отсутствует

Искомая запись найдена, незамаскированный токен отсутствует

-

6

Вернуть первоначальное значение параметров в компоненте Журналирование (LOGA) продукта Platform V Monitor (OPM)

В АРМ Компонента Журналирование во вкладке «Таблица» появляются записи, соответствующие установленному уровню

-

Проверка интеграции с компонентом Журналирование (LOGA)

Шаг

Действие

Ожидаемый результат

Тестовые данные

1

В АРМ компонента Журналирование ЕФС для компонента UFTM изменить значение параметра logger.remote.level и logger.name.level

-

Значение параметров: logger.remote.level=DEBUG, logger.name.level=ru.sbrf.ufs.content.dynamic:DEBUG

2

Выполнить запрос шаблона по идентификатору в сервисе выдачи

В АРМ компонента Журналирование ЕФС присутствует событие c сообщением Template controller received request: {} и уровнем DEBUG

Пример запроса шаблонов указан в документе «Программа и методика испытаний»

3

Вернуть первоначальное значение параметров в АРМ компонента Журналирование ЕФС

-

Первоначальное значение параметров

Проверка интеграции с компонентом Аудит (AUDT)

Шаг

Действие

Ожидаемый результат

Тестовые данные

1

Выполните загрузку нового шаблона

В АРМ компонента Аудит ЕФС присутствует событие SAVE_TEMPLATE_CHANGE_PACKAGE_CHUNK

Пример загрузки шаблонов указан в документе «Программа и методика испытаний»

Проверка интеграции с компонентом Объединенный мониторинг Unimon (MONA)

Шаг

Действие

Ожидаемый результат

Тестовые данные

1

Выполнить запрос шаблона по идентификатору в сервисе выдачи

В АРМ компонента Объединенный мониторинг Unimon присутствует метрика с именем get_templates_api_call_counter_total

Пример запроса шаблонов указан в документе «Программа и методика испытаний»

Проверка интеграции с компонентом PACMAN (CFGA)

Шаг

Действие

Ожидаемый результат

Тестовые данные

1

В АРМ компонента PACMAN изменить значение параметра dynamic-content.scheduled.change-packages-processing

-

Значение параметра 10

2

Выполнить загрузку нового шаблона

Шаблон будет доступен для запроса в сервисе выдачи через через 20 секунд (с учетом асинхронного типа выполнения задачи обработки изменений шаблонов)

Пример загрузки и запроса шаблонов указан в документе «Программа и методика испытаний»

3

Вернуть первоначальное значение параметра dynamic-content.scheduled.change-packages-processing

-

Первоначальное значение параметра

Откат#

Откат к предыдущей версии компонента UFTM представляет собой удаление изменений, внесенных в рамках установленной версии:

  1. В пространстве имен (namespace) компонента удалить все объекты и ресурсы, имена которых начинаются с префикса uftm-.

  2. Выполнить установку предыдущей версии компонента UFTM.

  3. После установки дистрибутива компонента UFTM предыдущей версии необходимо проверить правильность функционирования приложения в соответствии с разделом «Проверка работоспособности».

Примечание: Откат изменений в настройках параметров осуществляется в компоненте Deploy tools (CDJE) продукта Platform V DevOps Tools (DOT) и компоненте PACMAN (CFGA) продукта Platform V Frontend Std (#FS) вручную. Для получения детальной информации о работе с настройкой параметров обратитесь к документации на данные продукты.

Часто встречающиеся проблемы и пути их устранения#

Установка дистрибутива завершается ошибкой#

  1. Пример текста ошибки в логе установки дистрибутива:

    [Параметризация конфигов] Этап "Параметризация конфигов" завершен неуспешно
    Причина ошибки: ru.sbrf.devops.UFSException: IP-адреса и подсети не должны быть в ServiceEntry конфигах в поле hosts: найденый IP: <IP
    -address>
    
  2. Возможные причины:

    1. В параметрах с адресами серверов Kafka указаны IP-адреса.

  3. Варианты исправления:

    1. В параметрах с адресами серверов Kafka укажите вместо IP-адресов соответствующие FQDN-адреса.

Загруженные пакеты изменений шаблонов не применяются#

  1. Возможные причины:

    1. Сервис загрузки шаблонов был запущен, когда для блока был установлен режим REPAIR в компоненте ЕФС.Stand In (STDE).

  2. Варианты исправления:

    1. Разрешить работу задачи обработки пакета изменений шаблонов во всех режимах, указав пустой список в значении параметра компонента CFGA. task_scheduler.standin.modes.dynamic-content.scheduled.change-packages-processing.

Чек-лист валидации установки#

Среда развертывания обеспечивает наличие:

  • Инфраструктура: Kubernetes (k8s) или опционально Openshift Enterprise (OSE).

  • Кластер Kafka для внешнего взаимодействия (Kafka внешней CMS).

  • СУБД PostgreSQL или Platform V Pangolin SE.

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

  • Компонент Аудит (AUDT) продукта Platform V Audit SE (AUD)

  • Компонент Журналирование (LOGA) продукта Platform V Monitor (OPM).

  • Компонент Объединенный мониторинг Unimon (MONA) продукта Platform V Monitor (OPM).

  • Компонент Asynchronous Tasks (ASYT) продукта Platform V Frontend Std (#FS).

  • Компонент PACMAN (CFGA) продукта Platform V Frontend Std (#FS).

  • Компонент One-Time Password (OTP)/OTT (OTTS) продукта Platform V Frontend Std (#FS).

  • Компонент Защита от внутренних отказов ЕФС (FPRT) продукта Platform V Frontend Std (#FS).

  • Компонент ЕФС.Stand In (STDE) продукта Platform V Frontend Std (#FS).

Успешно пройдены тест кейсы раздела «Проверка работоспособности».

В процессе установки выполнены следующие действия:

  • Создана схема БД с именем uftm_<суффикс_блока>.

  • Установлен дистрибутив компонента Динамический контент (UFTM) продукта Platform V Content Management (SDC).

  • (Опционально) Применены параметры подключения к указанным выше инфраструктурным компонентам фронтальной части Платформы.