Руководство по установке#
В руководстве приведены инструкции по установке компонента Динамический контент (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 |
Опционально |
|||
Среда контейнеризации |
Да |
1.18 и выше |
Рекомендовано. Правообладателем АО «СберТех» также рекомендована среда контейнеризации – Platform V DropApp, см. раздел «Платформенные зависимости» |
||
Red Hat OpenShift |
4.6.28 |
Опционально |
|||
JAVA-машина |
Да |
11 |
Рекомендовано |
Окружение для работы модулей компонента |
|
СУБД |
Да |
14.2 |
Рекомендовано. Правообладателем АО «СберТех» также рекомендована СУБД, основанная на PostgreSQL – Platform V Pangolin SE (PSQ), см. раздел «Платформенные зависимости» |
СУБД для хранения данных компонента |
|
Брокер сообщений |
Да |
2.7.0 |
Рекомендовано. Правообладателем АО «СберТех» также рекомендован брокер сообщений, основанный на Kafka, – Platform V Corax, см. раздел «Платформенные зависимости» |
Распределенная система потоковой обработки данных, которая используется для обработки высоконагруженных потоков данных в реальном времени |
|
Сервис интеграции и оркестрации микросервисов в облаке |
Да |
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) |
|---|---|---|---|---|
|
300 |
700 |
512 |
1638.4 |
|
200 |
300 |
256 |
512 |
|
50 |
51 |
128 |
129 |
Квоты ресурсов для элемента развертывания dyncontent_upload-service:
Контейнер |
Запрашиваемое количество ядер ЦПУ (m) |
Лимит ядер ЦПУ (m) |
Запрашиваемое количество оперативной памяти (Mi) |
Лимит оперативной памяти (Mi) |
|---|---|---|---|---|
|
400 |
600 |
512 |
1638.4 |
|
200 |
300 |
256 |
512 |
|
50 |
51 |
128 |
129 |
Рекомендуемое количество экземпляров элементов развертывания:
Элемент развертывания |
Количество |
|---|---|
|
2 |
|
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.
Диаграммы развертывания с использованием как рекомендованного технологического стека, так и опционального можно посмотреть в документе «Детальная архитектура», раздел «Диаграмма развертывания».
Порядок выполнения установки:
Настройка СУБД.
Импорт конфигурации компонента UFTM в репозиторий.
Настройка конфигурации компонента UFTM.
Установка дистрибутива компонента UFTM.
Важно. Если ранее была выполнена установка с интеграцией с платформенными компонентами из #FS версии 4.1.3 и выше, то перед установкой компонента с интеграцией с платформенными компонентами из #FS версии 4.1.6 необходимо выполнить шаги из раздела «Откат изменений для интеграции с платформенными компонентами из продукта #FS» документа «Особенности интеграции с компонентами Frontend Standard (#FS)»
Настройка СУБД#
Для настройки СУБД необходимо выполнить следующие действия в указанном порядке:
Создайте схему БД.
Создайте пользователя для взаимодействия со схемой БД из компонента UFTM (пользователь БД компонента).
Создайте пользователя для выполнения liquibase-скриптов.
Создайте табличные пространства.
Выдайте права на изменение схемы пользователю для выполнения liquibase-скриптов.
Выдайте полные права пользователю для взаимодействия со схемой БД из компонента 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 выполните следующее:
Нажмите кнопку Собрать с параметрами.
Укажите значения для параметров:
CONFIG_DIR
SUBSYSTEM
COMPONENTS
SECTOR
OSE_CLUSTERS
DISTRIB_VERSION
PARAMS:
В секции «Репозиторий\ветка с настройками ФП» выберите ветку в репозитории с конфигурацией компонента UFTM. При необходимости создайте ветку в репозитории с конфигурацией компонента UFTM, руководствуясь документацией продукта Platform V DevOps Tools (DOT).
Выберите playbook
MIGRATION_FP_CONF.
Нажмите кнопку Собрать.
Назначение списков сценариев для запуска (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 |
Пароль пользователя БД, имя которого указано в параметре |
Пароль пользователя БД, который обладает всем набором прав на изменение схемы БД |
_passwords.conf |
DB_SCHEMA_SUFFIX |
Суффикс имени схемы БД |
Суффикс имени схемы БД, например, имя блока или контура, на который устанавливается компонент UFTM |
common.conf.yml |
jdbc.uftm_postgres.user |
Имя пользователя БД для взаимодействия со схемой БД из компонента UFTM |
Имя пользователя БД, который обладает набором прав для взаимодействия со схемой БД |
_passwords.conf |
Настройка аутентификации#
Аутентификация по паролю#
Для настройки аутентификации в СУБД с использованием пароля необходимо:
Настроить правило аутентификации в СУБД:
- hostnossl :database_name_placeholder :user_name_placeholder :host_ip_mask md5Указать пароль пользователя БД в параметре
jdbc.uftm_postgres.passwordв репозитории с конфигурацией стенда в файле_passwords.conf.Включить аутентификацию по паролю, указав значение
falseв параметреufs-dynamic-content.jdbc.ssl.enabledв репозитории с конфигурацией компонента в файлеufsdyncontent.all.conf. Аутентификация по паролю включена по умолчанию.
Аутентификация по сертификату (опционально)#
Для настройки аутентификации в СУБД с использованием сертификата необходимо:
Настроить правило аутентификации в СУБД:
- hostssl :database_name_placeholder :user_name_placeholder :host_ip_mask certВыпустить сертификат:
Сгенерировать ключевую пару.
Создать запрос на выпуск сертификата с именем субъекта (CN), равным значению параметра
jdbc.uftm_postgres.user.Отправить запрос на выпуск сертификата в удостоверяющий центр.
Импортировать в хранилище сертификатов, путь к которому указан в параметре
ufs-dynamic-content.ose.secret.db.certs.keystore.file-path:Сертификат удостоверяющего центра с alias, определяемым параметром
ufs-dynamic-content.ose.secret.db.root-cert.aliasesВыпущенный сертификат с alias, определяемым параметром
ufs-dynamic-content.ose.secret.db.cert.alias.
Включить аутентификацию по сертификату, указав значение
trueв параметреufs-dynamic-content.jdbc.ssl.enabledв репозитории с конфигурацией компонента в файлеufsdyncontent.all.conf.
Подробно настройка правил аутентификации описана в «Руководстве по системному администрированию компонента Pangolin».
Настройка интеграции с компонентом One-Time Password (OTP)/OTT (OTTS) продукта Platform V Frontend Std (#FS)#
Настройка сертификатов#
Сгенерировать ключевую пару.
Создать запрос на выпуск сертификата с именем субъекта, равного значению параметра
ufs-dynamic-content.ose.egress.ott.module.idОтправить запрос на выпуск сертификата в удостоверяющий центр.
Импортировать в хранилище сертификатов, путь к которому указан в параметре
ssl.ose.istio.keyStore.egress.KeyStoreFromFile:сертификат удостоверяющего центра.
выпущенный сертификат с 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 |
Настройка сертификатов#
Сгенерировать ключевую пару.
Создать запрос на выпуск сертификата с именем субъекта, равного значению параметра
ufs-dynamic-content.ose.egress.ott.module.id.Отправить запрос на выпуск сертификата в удостоверяющий центр.
Импортировать в хранилище сертификатов, путь к которому указан в параметре
ufs-dynamic-content.k8s.istio.egress.secret.cms.kafka.certs.keystore.file-path:Сертификат удостоверяющего центра с alias, определяемым параметром
ufs-dynamic-content.k8s.istio.egress.secret.cms.kafka.root-cert.aliases.Выпущенный сертификат с 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)#
Настройка сертификатов#
Сгенерировать ключевую пару.
Создать запрос на выпуск сертификата.
Отправить запрос на выпуск сертификата в удостоверяющий центр.
Импортировать в хранилище сертификатов, путь к которому указан в параметре
ufs-dynamic-content.k8s.istio.egress.secret.kafka.certs.keystore.file-path:Сертификат удостоверяющего центра с alias, определяемым параметром
ufs-dynamic-content.k8s.istio.egress.secret.kafka.root-cert.aliases.Выпущенный сертификат с alias, определяемым соответствующим параметром:
ufs-dynamic-content.k8s.istio.egress.secret.logger.kafka.cert.alias.ufs-dynamic-content.k8s.istio.egress.secret.ufs-audit.kafka.cert.alias.ufs-dynamic-content.k8s.istio.egress.secret.union-audit.kafka.cert.alias.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 необходимо:
Включить PKI Secrets Engine по пути
:engine-path(например,/pki).Выполнить общую конфигурацию PKI Secrets Engine.
Создать роль
:role-nameв системе управления секретами. При создании роли указать все допустимые доменные имена для сертификатов. Выпуск сертификатов будет доступен только с common name, значение которого входит в список допустимых имен. При необходимости переопределите время действия выпускаемых сертификатов, заданное в общей конфигурации PKI Secrets Engine.Указать путь
: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
Указать 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 обратитесь к документации системы управления секретами.
Управление секретами для аутентификации в БД#
Аутентификация по паролю#
Для управления именем пользователя и паролем для аутентификации в БД необходимо:
Настроить правило аутентификации по паролю для пользователя БД компонента. Настройка правила аутентификации описана в разделе «Настройка интеграции с СУБД».
Настроить KV Secrets Engine Version 1 в системе управления секретами.
Включить аутентификацию по паролю, указав значение
falseв параметреufs-dynamic-content.jdbc.ssl.enabledв репозитории с конфигурацией компонента в файлеufsdyncontent.all.conf. Аутентификация по паролю включена по умолчанию.
Для настройки KV Secrets Engine Version 1 необходимо:
Включить KV Secrets Engine Version 1 по пути
:engine-path(например,/kv).Создать секрет с логином и паролем пользователя БД по пути
:secret-path(например,/db-creds):
Ключ |
Значение |
|---|---|
|
Логин пользователя БД |
|
Пароль пользователя БД |
|
Срок действия пароля пользователя БД |
Указать путь к секрету
:engine-path/:secret-pathв параметреufs-dynamic-content.k8s.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-db-creds.path.
Ротация секрета производится администраторами путем замены пользователя БД.
Пример алгоритма замены пользователя:
Создаются два пользователя БД с пересекающимися сроками действия пароля (grace period - пересечение сроков действия паролей, когда действуют оба пользователя. Используется для плавной замены).
В KV Secrets Engine Version 1 указываются логин, пароль и срок действия первого пользователя.
При наступлении grace period в KV Secrets Engine Version 1 указываются логин, пароль и срок действия второго пользователя.
Далее пользователи меняются с предварительной сменой пароля.
Аутентификация по сертификату (опционально)#
Для управления сертификатами для аутентификации в БД необходимо:
Настроить правило аутентификации по сертификату для пользователя БД компонента. Настройка правила аутентификации описана в разделе «Настройка интеграции с СУБД».
Настроить PKI Secrets Engine в системе управления секретами.
Включить аутентификацию по сертификату, указав значение
trueв параметреufs-dynamic-content.jdbc.ssl.enabledв репозитории с конфигурацией компонента в файлеufsdyncontent.all.conf.
Для настройки PKI Secrets Engine необходимо:
Выполнить пункты 1-3 инструкции из раздела «Настройка PKI Secrets Engine для управления сертификатами».
Указать путь PKI Secrets Engine для выпуска сертификатов в параметре
ufs-dynamic-content.k8s.deployment.spec.template.metadata.annotations.vault.hashicorp.com.agent-inject-template-db-certs.path.Указать 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). Для настройки интеграции с компонентом нужно выполнить следующие действия:
Установить компонент Synapse Rate Limiter (SRLS) продукта Platform V Synapse Enterprise Integration (SEI).
Настроить квотирование нагрузки.
Установка компонента 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 необходимо выполнить следующие шаги:
В параметр 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
Дальше в файле ufsdyncontent.all.conf указать серверы из предыдущего пункта (без портов проксирования на egress) в параметр ufs-logger.kafka.bootstrap.servers
В том же файле в параметре ufs-logger.kafka.topic указать топик
После указания указанных выше параметров необходимо осуществить redeploy
При переключении на серверы LOGA может произойти нарушение в работоспособности unimon agent. Чтобы этого избежать нужно в конфигурационных файлах unimon agent отключить шифрование на прикладных pods. Например, в файле opm_unimon.unimon-sender.conf выставить kafka.ssl.enabled=false. Повторить аналогично для других конфигурационных файлов unimon
Выполнить redeploy unimon
Переключение между контрольными панелями#
Для переключения с Istio control plane на компонент Управление политиками (POLM), необходимо выполнить следующие шаги:
Отключить namespace, в который устанавливается UFTM, от Istio control plane
Выполнить команду:
kubectl label namespaces <component_ns> istio.io/rev=<polm_ns> - присвоение namespace, в который устанавливается UFTM, лейбл istio.io/rev со значением namespace POLM
В случае, если изменился адрес контрольной панели, необходимо внести изменения в multicluster.json репозитория common При переключении с POLM на Istio control plane выполняются аналогичные действия.
Установка дистрибутива компонента#
Для установки дистрибутива компонента UFTM необходимо в Deploy job выполнить следующее:
Нажать кнопку Собрать с параметрами.
Указать значения для параметров:
CONFIG_DIR
SUBSYSTEM
COMPONENTS
SECTOR
OSE_CLUSTERS
DISTRIB_VERSION
PARAMS:
В секции «Репозиторий\ветка с настройками ФП» выбрать ветку в репозитории с конфигурацией компонента UFTM.
Выбрать следующие сценарии для запуска (playbooks):
DB_UPDATE
NGINX_MM_DEPLOY
FP_CONF_CHECK
OPENSHIFT_DEPLOY
OPENSHIFT_INGRESS_EGRESS_DEPLOY
IMPORT_SUP_PARAMS
IMPORT_LOGGER_PARAMS
IMPORT_TASK_SCHEDULER_PARAMS.
Нажать кнопку Собрать.
Назначение списков сценариев для запуска (playbooks) описано в документации продукта Platform V DevOps Tools (DOT).
Обновление#
Обновление компонента UFTM автоматизированным способом производится с помощью инструментов продукта Platform V DevOps Tools (DOT). Обновление выполняется путем удаления предыдущей версии компонента в среде контейнеризации и установки новой. Сведения об обратной совместимости API указаны в разделе «Сохранение обратной совместимости API сервисов (REST API и Kafka messaging API)» документа «Детальная архитектура».
Для установки обновления нужно выполнить следующие действия:
Удалить в АРМ компонента CFGA параметр
task_scheduler.standin.modes.dynamic-content.scheduled.change-packages-processing.Установить дистрибутив компонента 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 |
В разделе Активные параметры присутствуют: |
- |
3 |
Переключить уровень логирования в АРМ компонента Журналирование (LOGA) продукта Platform V Monitor (OPM), изменив значения параметров |
В АРМ Компонента Журналирование во вкладке Таблица появляются записи с уровнями |
logger.remote.enabled = true |
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 |
5 |
В АРМ компонента Журналирование (LOGA) продукта Platform V Monitor (OPM), во вкладке «Таблица», найти запись о запросе и убедиться, что незамаскированный токен отсутствует |
Искомая запись найдена, незамаскированный токен отсутствует |
- |
6 |
Вернуть первоначальное значение параметров в компоненте Журналирование (LOGA) продукта Platform V Monitor (OPM) |
В АРМ Компонента Журналирование во вкладке «Таблица» появляются записи, соответствующие установленному уровню |
- |
Проверка интеграции с компонентом Журналирование (LOGA)
Шаг |
Действие |
Ожидаемый результат |
Тестовые данные |
|---|---|---|---|
1 |
В АРМ компонента Журналирование ЕФС для компонента UFTM изменить значение параметра |
- |
Значение параметров: |
2 |
Выполнить запрос шаблона по идентификатору в сервисе выдачи |
В АРМ компонента Журналирование ЕФС присутствует событие c сообщением |
Пример запроса шаблонов указан в документе «Программа и методика испытаний» |
3 |
Вернуть первоначальное значение параметров в АРМ компонента Журналирование ЕФС |
- |
Первоначальное значение параметров |
Проверка интеграции с компонентом Аудит (AUDT)
Шаг |
Действие |
Ожидаемый результат |
Тестовые данные |
|---|---|---|---|
1 |
Выполните загрузку нового шаблона |
В АРМ компонента Аудит ЕФС присутствует событие |
Пример загрузки шаблонов указан в документе «Программа и методика испытаний» |
Проверка интеграции с компонентом Объединенный мониторинг Unimon (MONA)
Шаг |
Действие |
Ожидаемый результат |
Тестовые данные |
|---|---|---|---|
1 |
Выполнить запрос шаблона по идентификатору в сервисе выдачи |
В АРМ компонента Объединенный мониторинг Unimon присутствует метрика с именем |
Пример запроса шаблонов указан в документе «Программа и методика испытаний» |
Проверка интеграции с компонентом PACMAN (CFGA)
Шаг |
Действие |
Ожидаемый результат |
Тестовые данные |
|---|---|---|---|
1 |
В АРМ компонента PACMAN изменить значение параметра |
- |
Значение параметра |
2 |
Выполнить загрузку нового шаблона |
Шаблон будет доступен для запроса в сервисе выдачи через через 20 секунд (с учетом асинхронного типа выполнения задачи обработки изменений шаблонов) |
Пример загрузки и запроса шаблонов указан в документе «Программа и методика испытаний» |
3 |
Вернуть первоначальное значение параметра |
- |
Первоначальное значение параметра |
Откат#
Откат к предыдущей версии компонента UFTM представляет собой удаление изменений, внесенных в рамках установленной версии:
В пространстве имен (namespace) компонента удалить все объекты и ресурсы, имена которых начинаются с префикса
uftm-.Выполнить установку предыдущей версии компонента UFTM.
После установки дистрибутива компонента UFTM предыдущей версии необходимо проверить правильность функционирования приложения в соответствии с разделом «Проверка работоспособности».
Примечание: Откат изменений в настройках параметров осуществляется в компоненте Deploy tools (CDJE) продукта Platform V DevOps Tools (DOT) и компоненте PACMAN (CFGA) продукта Platform V Frontend Std (#FS) вручную. Для получения детальной информации о работе с настройкой параметров обратитесь к документации на данные продукты.
Часто встречающиеся проблемы и пути их устранения#
Установка дистрибутива завершается ошибкой#
Пример текста ошибки в логе установки дистрибутива:
[Параметризация конфигов] Этап "Параметризация конфигов" завершен неуспешно Причина ошибки: ru.sbrf.devops.UFSException: IP-адреса и подсети не должны быть в ServiceEntry конфигах в поле hosts: найденый IP: <IP -address>Возможные причины:
В параметрах с адресами серверов Kafka указаны IP-адреса.
Варианты исправления:
В параметрах с адресами серверов Kafka укажите вместо IP-адресов соответствующие FQDN-адреса.
Загруженные пакеты изменений шаблонов не применяются#
Возможные причины:
Сервис загрузки шаблонов был запущен, когда для блока был установлен режим
REPAIRв компоненте ЕФС.Stand In (STDE).
Варианты исправления:
Разрешить работу задачи обработки пакета изменений шаблонов во всех режимах, указав пустой список в значении параметра компонента 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).
(Опционально) Применены параметры подключения к указанным выше инфраструктурным компонентам фронтальной части Платформы.