Руководство по установке#
О документе#
В руководстве приведены инструкции по установке компонента Сервис интеграции справочных данных (DDIS).
Обозначения, сокращения, термины и определения приведены в документе Термины и определения.
Системные требования#
Настройки безопасности окружения и перечень платформенных (дополнительных внешних) продуктов, используемых для установки, настройки и контроля в конечной информационной системе (далее — ИС), выбираются при разработке конечной ИС, исходя из характера обрабатываемой в ней информации и иных требований информационной безопасности (далее — ИБ), предъявляемых к ней. Особых требований к настройкам безопасности окружения не предъявляется.
Системное программное обеспечение#
Ниже представлены категории системного программного обеспечения, которые обязательны или опциональны для установки, настройки, контроля и функционирования DDIS. В каждой категории перечислены все поддерживаемые продукты сторонних правообладателей. Отдельно обозначены варианты, которые рекомендует АО «СберТех» (маркировка «Рекомендовано» в столбце «Продукт, функциональная совместимость с которым подтверждена»). Клиенту необходимо выбрать один из продуктов в каждой категории, исходя из условий использования конечной ИС.
Категория ПО |
Обязательность установки |
Наименование ПО |
Версия |
Продукт, функциональная совместимость с которым подтверждена |
Описание |
|---|---|---|---|---|---|
Операционная система |
Да |
Альт 8 СП |
10.0 и выше |
Рекомендовано. Правообладателем АО «СберТех» также рекомендована ОС – Platform V SberLinux OS Core (SLC) или Platform V SberLinux OS Server (SLO), см. раздел Платформенные зависимости |
ОС контейнеров для запуска модулей компонента |
Операционная система |
Red Hat Enterprise Linux |
8.8.1 и выше |
Опционально. Правообладателем АО «СберТех» рекомендована ОС – Platform V SberLinux OS Server (SLO), см. раздел Платформенные зависимости |
ОС контейнеров для запуска модулей компонента |
|
Среда контейнеризации |
Да |
1.21.6 и выше при условии сохранения обратной совместимости |
Опционально. Правообладателем АО «СберТех» рекомендована среда контейнеризации – Platform V DropApp (K8S), см. раздел Платформенные зависимости |
Платформа контейнеризации для запуска компонентов сервиса |
|
Среда контейнеризации |
Red Hat OpenShift Container Platform |
4.8 и выше |
Опционально. Правообладателем АО «СберТех» рекомендована среда контейнеризации – Platform V DropApp (K8S), см. раздел Платформенные зависимости |
Платформа контейнеризации для запуска компонентов сервиса |
|
Средство контейнеризации |
Да |
1.23 и выше |
Рекомендовано |
Инструмент для автоматизации работы с контейнерами |
|
Инструмент сборки, тестирования, развертывания контейнеризированных приложений |
Да |
2.361.4 и выше |
Рекомендовано |
Сервер автоматизации, используемый для внедрения непрерывной интеграции и непрерывной доставки (CI/CD) для проектов программного обеспечения |
|
Java-машина |
Да |
1.8 и выше |
Рекомендовано |
Окружение для работы модулей компонента |
|
Java-машина |
OracleJDK |
18.9 и выше |
Опционально |
Окружение для работы модулей компонента |
|
Система управления базами данных |
Да |
13.8 и выше при условии сохранения обратной совместимости |
Рекомендовано. Правообладателем АО «СберТех» также рекомендована СУБД, основанная на PostgreSQL, – Platform V Pangolin SE, см. раздел Платформенные зависимости |
ПО, взаимодействующее с конечными пользователями, приложениями и базой данных для сбора и анализа данных |
|
Драйвер |
Нет |
PostgreSQL JDBC |
42.3.8 и выше |
Рекомендовано |
Набор классов и методов, используемых в языке программирования Java для работы с базами данных |
Сервер приложений |
Да |
9.0.41 и выше |
Рекомендовано |
СПО для тестирования, отладки и исполнения веб-приложений на основе Java |
|
Браузер |
Нет |
Сбербраузер |
9.2.60.1 |
Опционально |
Прикладное программное обеспечение для просмотра страниц, содержания веб-документов, компьютерных файлов и их каталогов, управления веб-приложениями, а также для решения других задач |
Браузер |
Нет |
Microsoft Edge |
123.0.2420.81 и выше |
Опционально |
Прикладное программное обеспечение для просмотра страниц, содержания веб-документов, компьютерных файлов и их каталогов, управления веб-приложениями, а также для решения других задач |
Брокер сообщений |
Да |
2.7.0 и выше при условии сохранения обратной совместимости |
Рекомендовано. Правообладателем АО «СберТех» также рекомендован брокер сообщений, основанный на Kafka, – Platform V Corax, см. раздел Платформенные зависимости |
Событийный обмен сообщениями между модулями компонента, между смежными компонентами |
|
Инструмент управления проектом |
Да |
3.9 и выше |
Рекомендовано |
Фреймворк для автоматизации сборки проектов на основе описания их структуры в файлах на языке POM |
|
Сервис централизованного хранения репозиториев артефактов (хранилище артефактов) |
Да |
2.5.1 и выше |
Рекомендовано |
Интегрированная платформа для проксирования, хранения и управления зависимостями Java (Maven), образами, а также распространения ПО |
|
Сервис централизованного хранения репозиториев артефактов (хранилище артефактов) |
Nexus Repository Manager PRO |
2 и выше |
Опционально |
||
Сервис централизованного хранения репозиториев артефактов (хранилище артефактов) |
Nexus Repository Manager OSS |
2 и выше |
Опционально |
||
Сервис централизованного хранения репозиториев исходного кода |
Да |
15.0 и выше |
Рекомендовано |
Хранение конфигураций при автоматизированной установке |
|
Сервис централизованного хранения репозиториев исходного кода |
Bitbucket |
7.6 и выше |
Опционально |
Хранение конфигураций при автоматизированной установке |
|
Сервис интеграции и оркестрации микросервисов в облаке |
Да |
1.12 и выше |
Рекомендовано. Правообладателем АО «СберТех» также рекомендован сервис интеграции и оркестрации микросервисов в облаке, основанный на Istio, – Platform V Synapse Service Mesh, см. раздел Платформенные зависимости |
Сервис интеграции микросервисов в облаке |
|
Система мониторинга (сбор и хранение метрик) |
Нет |
2.37 и выше |
Рекомендовано. Правообладателем АО «СберТех» также рекомендован сервис для сбора прикладных и инфраструктурных метрик и отправки их в целевую систему хранения – Объединенный мониторинг Unimon Platform V Monitor, см. раздел Платформенные зависимости |
Система для сбора и хранения численных метрик |
|
Система мониторинга (визуализация численных метрик) |
Нет |
9.5 и выше |
Рекомендовано |
Система для визуализации численных метрик (предоставленных, например, Prometheus) |
|
Удостоверяющий центр |
Да |
6.10 и выше |
Рекомендовано |
Программный пакет центра сертификации инфраструктуры открытых ключей свободного программного обеспечения |
|
Система для управления изменениями баз данных |
Да |
LiquiBase |
4.24.0 и выше |
Рекомендовано |
Библиотека для отслеживания, управления и применения изменений схемы базы данных |
Система создания, хранения и распространения секретов |
Нет |
D-01.013.00-XXX |
Опционально |
Система, обеспечивающая безопасный и надежный способ создания, хранения и распространения секретов |
|
Система создания, хранения и распространения секретов |
Secret Management System (SecMan) |
1.7.0 и выше |
Опционально |
Система, обеспечивающая безопасный и надежный способ создания, хранения и распространения секретов |
|
Хранилище загруженных с ФИР данных |
Да |
Любая актуальная версия |
Рекомендовано. Может быть использовано любое облачное объектное хранилище, совместимое с протоколом S3 |
Сервис для хранения данных в виде объектов, доступный через S3 API |
|
Любая актуальная версия |
Рекомендовано. Может быть использовано любое облачное объектное хранилище, совместимое с протоколом S3 |
Также требуется наличие распределенного сетевого хранилища (облачное объектное хранилище, совместимое с протоколом S3).
Для установки поставляемого компонента DDIS могут быть использованы:
компонент CDJE, требуемый для автоматизированной установки компонента DDIS, см. раздел Платформенные зависимости;
утилита для удаленной настройки (например, Ansible), требуемая для ручной установки компонента DDIS.
Для выполнения команд необходим установленный клиент системы контейнеризации Kubernetes (Kubectl) версии, соответствующей версии Kubernetes.
Примечание
Примечание
*
Да — категория ПО обязательна для функционирования сервиса (это означает, что сервис не может выполнять свои основные функции без установки данной категории ПО).
Нет — категория ПО необязательна для функционирования сервиса (это означает, что сервис может выполнять свои основные функции без установки данной категории ПО).
**Рекомендовано — рекомендованный правообладателем АО «СберТех» продукт.
Опционально — альтернативный по отношению к рекомендованному правообладателем АО «СберТех» продукт.
Платформенные зависимости#
Для настройки, контроля и функционирования DDIS реализована интеграция с программными продуктами, правообладателем которых является АО «СберТех»:
Наименование продукта |
Код |
Версия продукта |
Код и наименование компонента |
Обязательность установки (да/нет) |
Описание |
Аналог других производителей |
|---|---|---|---|---|---|---|
Platform V Audit SE |
AUD |
2.3 и выше |
AUDT Аудит |
Нет |
Сервис для аудирования событий |
С аналогами других производителей не тестировался |
Platform V Corax |
KFK |
10.340.0 и выше |
KFKA Corax |
Да |
Гибрид распределенной базы данных и брокера сообщений для работы с потоками данных в реальном времени с возможностью горизонтального масштабирования |
Kafka |
Platform V DevOps Tools |
DOT |
1.9 |
CDJE Deploy tools |
Нет |
Сервис для развертывания и обновления компонент Platform V и приложений потребителей, для настройки и обслуживания инфраструктуры Platform V |
Ручное развертывание |
Platform V IAM SE |
IAM |
2.0.0 и выше |
AUTH IAM Proxy |
Нет |
Сервис управления доступом и информационными ресурсами |
С аналогами других производителей не тестировался |
Platform V IAM SE |
IAM |
2.0.0 и выше |
AUTZ Объединенный сервис авторизации (ОСА) |
Нет |
Сервис для авторизации |
С аналогами других производителей не тестировался |
Platform V Monitor |
OPM |
5.1.52 и выше |
LOGA Журналирование |
Нет |
Сервис для хранения лог-файлов |
С аналогами других производителей не тестировался |
Platform V Monitor |
OPM |
5.1.75 |
MONA Объединенный мониторинг Unimon |
Нет |
Сервис для сбора прикладных и инфраструктурных метрик и отправки их в целевую систему хранения |
Prometheus |
Platform V Pangolin SE |
PSQ |
5.5.4 и выше |
PSQL Pangolin |
Да |
Система управления базами данных, основанная на PostgreSQL |
PostgreSQL |
Platform V Synapse Service Mesh |
SSM |
4.3.2 и выше |
SVPX Сервисный прокси |
Да |
Сервисный прокси, который интегрируется с Service Mesh, осуществляя аутентификацию, авторизацию, балансировку трафика внутри namespace потребителя |
Istio proxy — Istio Service Mesh |
Platform V Synapse Service Mesh |
SSM |
4.3.2 и выше |
IGEG Граничный и сервисный прокси |
Да |
Сервис для обеспечения управляемого вызова интеграционных сервисов прикладной части |
Istio proxy — Istio Service Mesh |
Platform V Synapse Service Mesh |
SSM |
4.3.2 и выше |
POLM Управление политиками |
Да |
Сервис для автоматизированной рассылки конфигураций политик управления трафиком, политик безопасности и прочих управляющих команд для сервисов «Граничный прокси» и «Сервисный прокси» |
Istio proxy — Istio Service Mesh |
Platform V SberLinux OS Server |
SLO |
8.10.0 и выше |
INST Операционная система |
Да |
ОС контейнеров для запуска модулей компонента |
Альт 8 СП или Red Hat Enterprise Linux |
Platform V SberLinux OS Core |
SLC |
37.0 и выше |
CORE Базовая ОС |
Да |
ОС контейнеров для запуска модулей компонента |
Альт 8 СП |
Platform V DropApp |
K8S |
2.2.0 и выше |
K8SC K8S Core |
Да |
Среда контейнеризации со встроенными механизмами мультитенантности и бессерверным исполнением |
Kubernetes |
Примечание
Примечание
***
Да — компонент или продукт необходим для функционирования сервиса (это означает, что сервис не может выполнять свои основные функции без установки данного компонента).
Нет — необязательный для функционирования сервиса компонент или продукт (это означает, что сервис может выполнять свои основные функции без установки данного компонента).
****Рекомендуется установка программного продукта, правообладателем которого является АО «СберТех», при этом не исключена возможность (допускается правообладателем) использования аналога других производителей. Аналоги, в отношении которых продукт успешно прошел испытания и подтвердил свою работоспособность, указаны в разделе Системное программное обеспечение.
У компонента реализована интеграция со следующими компонентами из состава продукта Platform V Frontend Std (#FS):
Наименование компонента |
Код |
Описание |
Комментарии |
|---|---|---|---|
Сервис предоставления справочных данных |
LNSE |
Фасад для получения справочных данных по API |
Platform V Frontend Std (#FS) версии 4.5.44.1 и выше |
One-Time Password (OTP) / OTT |
OTTS |
Сервис для аутентификации и авторизации межсервисных взаимодействий |
Platform V Frontend Std (#FS) версии 4.5.44.1 и выше |
PACMAN |
CFGA |
Сервис для хранения, управления и предоставления по запросу параметров конфигурации библиотек, сервисов и прикладных приложений |
Platform V Frontend Std (#FS) версии 4.5.44.1 и выше |
Стартовый менеджер |
SMGX |
Сервис является унифицированной точкой доступа к функциям фронтальной части компонентов |
Platform V Frontend Std (#FS) версии 4.5.44.1 и выше |
Внутренний шлюз ЕФС |
IAGW |
Сервис является точкой входа в сектор, маршрутизирует HTTP-запрос на определенный shard или реплику |
Platform V Frontend Std (#FS) версии 4.5.44.1 и выше |
Аппаратные требования#
Квота на проект без учета sidecar-контейнеров:
Элемент развертывания |
Среда развертывания |
CPU requests (Millicores) |
Memory requests (Gigabytes) |
CPU limits (Millicores) |
Memory limits (Gigabytes) |
|---|---|---|---|---|---|
ddis-controller |
Kubernetes/Platform V DropApp |
1000 |
3 |
1000 |
3 |
ddis-facade |
Kubernetes/Platform V DropApp |
1000 |
2 |
1000 |
2 |
ddis-gate-tfs |
Kubernetes/Platform V DropApp |
3000 |
4 |
3000 |
4 |
ddis-publish-lnse |
Kubernetes/Platform V DropApp |
1000 |
2 |
1000 |
2 |
ddis-transformer |
Kubernetes/Platform V DropApp |
1000 |
2 |
1000 |
2 |
ddis-istio-egress |
Kubernetes/Platform V DropApp |
400 |
0,7 |
600 |
0,9 |
ddis-istio-ingress |
Kubernetes/Platform V DropApp |
200 |
0,4 |
400 |
0,6 |
Минимальное количество pod на один элемент развертывания (deployment unit): 1.
Характеристики sidecar-контейнеров:
Sidecar-контейнер |
Среда развертывания |
CPU requests (millicores) |
Memory requests (Gigabytes) |
CPU limits (millicores) |
Memory limits (Gigabytes) |
Элемент развертывания |
|---|---|---|---|---|---|---|
istio-proxy |
Kubernetes/Platform V DropApp |
100 |
0.25 |
200 |
0.5 |
ddis-controller, ddis-facade, ddis-gate-tfs, ddis-publish-lnse, ddis-transformer |
ott-sidecar |
Kubernetes/Platform V DropApp |
300 |
0.5 |
300 |
0.5 |
ddis-istio-ingress, ddis-istio-egress |
vault-agent |
Kubernetes/Platform V DropApp |
50 |
0,06 |
100 |
0,13 |
ddis-controller, ddis-facade, ddis-gate-tfs, ddis-publish-lnse, ddis-transformer, ddis-istio-ingress, ddis-istio-egress |
ulogger-sidecar |
Kubernetes/Platform V DropApp |
100 |
0,06 |
200 |
0,06 |
ddis-controller, ddis-facade, ddis-gate-tfs, ddis-publish-lnse, ddis-transformer |
Квота на проект с учетом sidecar-контейнеров:
Элемент развертывания |
Среда развертывания |
CPU requests (millicores) |
Memory requests (Gigabytes) |
CPU limits (millicores) |
Memory limits (Gigabytes) |
|---|---|---|---|---|---|
ddis-controller |
Kubernetes/Platform V DropApp |
1250 |
3.37 |
1500 |
3.69 |
ddis-facade |
Kubernetes/Platform V DropApp |
1250 |
2.37 |
1500 |
2.69 |
ddis-gate-tfs |
Kubernetes/Platform V DropApp |
3250 |
4.37 |
3500 |
4.69 |
ddis-publish-lnse |
Kubernetes/Platform V DropApp |
1250 |
2.37 |
1500 |
2.69 |
ddis-transformer |
Kubernetes/Platform V DropApp |
1250 |
2.37 |
1500 |
2.69 |
ddis-istio-egress |
Kubernetes/Platform V DropApp |
750 |
1,26 |
600 |
1,53 |
ddis-istio-ingress |
Kubernetes/Platform V DropApp |
550 |
0,96 |
400 |
1,23 |
Минимальные требования к ресурсам базы данных:
Название компонента |
Среда развертывания |
CPU (количество ядер) |
RAM (Gigabytes) |
HDD (Tbyte) |
|---|---|---|---|---|
Системные таблицы DDIS |
PostgreSQL |
4 |
16 |
0,3 (/data 0,23; /logs 0,05) |
Минимальные требования к ресурсам размещения статических файлов:
Название компонента |
Среда развертывания |
HDD (Гб) |
|---|---|---|
Object storage S3 |
300 |
Состав дистрибутива#
Дистрибутив компонента DDIS состоит из нескольких частей:
дистрибутив бинарных артефактов (ddis-bin-XX.YYY.ZZ-BUILD_FS-distrib.zip);
дистрибутивы конфигурации развертывания (ddis-cfg-XX.YYY.ZZ-BUILD_FS-distrib.zip);
файл .pom для каждого дистрибутива;
дистрибутив с документацией (documentation-XX.YYY.ZZ-BUILD-distrib.zip).
Дистрибутив бинарных артефактов компонента DDIS содержит:
Элемент дистрибутива |
Описание |
|---|---|
|
Исполняемые jar-файлы в среде JVM (distribution-controller.jar и т.д.) |
|
Скрипты миграции для системных таблиц, БД Pangolin (PSQL) |
|
Инструкции создания образа контейнеров приложений |
Дистрибутив конфигурации развертывания DDIS содержит конфигурационные файлы, использующиеся при автоматизированной установке компонента средствами Deploy tools (CDJE) продукта Platform V DevOps Tools (DOT).
Файлы *.pom содержат идентификационные параметры дистрибутивов, входящих в дистрибутивный комплект (по одному файлу на каждый дистрибутив). Каждый из файлов *.pom дистрибутива конфигурации развертывания в дополнение к идентификационным параметрам ассоциированного с ним дистрибутива содержит идентификационные параметры включенного в дистрибутивный комплект дистрибутива бинарных артефактов.
Дистрибутив с документацией содержит документацию компонента DDIS в формате Markdown.
Образы#
Образы контейнеров не входят в состав дистрибутивного комплекта компонента DDIS. Образы определяются по правилам конечной информационной системы, в которую интегрируется компонент DDIS.
Инструкции, необходимые для создания образов прикладных контейнеров DDIS, приведены в соответствующем dockerfile (размещается в каталоге \conf\docker\<service> дистрибутива бинарных артефактов). Каждый dockerfile, в том числе, содержит сведения о рекомендованном базовом образе (base_image) — основы для образа прикладного контейнера.
В конфигурации развертывания DDIS присутствуют ссылки на образы sidecar-контейнеров, Dockerfile которых отсутствуют в дистрибутиве компонента. Образы указанных sidecar-контейнеров поставляются в составе других платформенных продуктов. Для sidecar-контейнеров DDIS рекомендованы образы соответствующие версиям с компонентов, указанным в разделе Платформенные зависимости настоящего документа.
Рекомендованные образы sidecar-контейнеров платформенных компонентов:
Sidecar-контейнер |
Хеш |
|---|---|
istio-proxy |
proxyv2@sha256:fe9b0ca97d086d2b3800c5e9ed8ca3a0cfbc93627acc6c556e430d328ab1ac0a |
ott-sidecar |
ott-sidecar-ufs@sha256:e85217c05557809081fa1f7654b473f515fedec211c4167c6133cb74ba72b310 |
ulogger-sidecar |
luent-bit@sha256:c8ed6320ba8ae23522877a52e9b7f3e7fb12916434b18f8c45970ee631c1b7e0 |
Для интеграции с системой создания, хранения и распространения секретов рекомендован вспомогательный компонент vault-agent. Алгоритм хеширования — sha256.
Выбор способа установки#
Целевой способ установки — Автоматизированная установка сервиса с использованием компонента CDJE.
Ручная установка компонента не предусмотрена.
Подготовка окружения#
Для установки компонента DDIS необходимо провести подготовительные мероприятия:
подготовить инструменты развертывания;
подготовить базу данных;
подготовить пространство имен (namespace) в среде контейнеризации;
подготовить сертификаты;
подготовить секреты.
До установки компонента DDIS необходимо выполнить установку платформенных компонентов. Перечень платформенных компонентов приведен в разделе Платформенные зависимости настоящего Руководства по установке. Установка платформенных компонентов производится в соответствии с их эксплуатационной документацией.
Облачное объектное хранилище, совместимое с протоколом S3.
Подготовка инструментов развертывания#
В процессе установки и настройки компонента Deploy tools (CDJE) продукта Platform V DevOps Tools (DOT) в централизованном хранилище репозиториев исходного кода должны быть созданы:
репозитории Pipeline:
с кодовой базой компонента Deploy tools (CDJE);
с общими параметрами среды функционирования компонентов продукта Platform V Frontend Standart (#FS) — репозиторий Сommon;
репозиторий с настройками компонента DDIS в среде функционирования.
Полный перечень репозиториев и их описание приведено в разделе «Подготовка окружения» документа Руководство по установке компонента Deploy tools (CDJE).
Кроме того, в процессе установки и настройки компонента Deploy tools (CDJE) должна быть выполнена миграция данных для репозиториев Pipeline. Описание процедура миграции приведено в разделе «Установка» документа Руководство по установке компонента Deploy tools (CDJE).
Подготовка базы данных#
Схема разворачивания скриптов БД:
для каждого сервиса отдельная схема в одной БД.
Необходимо выполнить настройку PSQL. Для этого в СУБД необходимо проверить наличие ролей as_admin, as_TUZ. При разворачивании в СУБД PSQL роли входят в поставку. При использовании СУБД PSQL необходимо предварительно создать роли.
-- скрипт проверки на наличие ролей
SELECT rolname FROM pg_roles WHERE rolname in ('as_TUZ', 'as_admin');
--скрипт создания ролей
CREATE ROLE as_admin WITH NOLOGIN INHERIT CONNECTION LIMIT 0 VALID UNTIL 'infinity';
CREATE ROLE "as_TUZ" WITH NOLOGIN INHERIT CONNECTION LIMIT 0 VALID UNTIL 'infinity';
Проверить параметр max_connections количество соединений к БД. Значение должно быть не меньше произведению 20 (pool соединений от одного сервиса) и количество экземпляров сервисов, подключаемых к БД.
Далее приведена инструкция создания схем и пользователей для каждого сервиса. Далее по тексу DB_SCHEMA_SUFFIX.
Перед созданием схем в базе данных необходимо создание табличных пространств (tablespace):
ddis_ts_data, табличное пространство для таблиц;
ddis_ts_idx, табличное пространство для индексов.
Пример команды создания каталогов:
-- пример, на сервере создать папки для пространств
mkdir /pgdata/pg_tblspc/ddis_ts_data
mkdir /pgdata/pg_tblspc/ddis_ts_idx
--в СУБД выполнить пользователем с правами db_admin (psql)
CREATE TABLESPACE ddis_ts_data OWNER as_admin LOCATION '/pgdata/pg_tblspc/ddis_ts_data';
CREATE TABLESPACE ddis_ts_idx OWNER as_admin LOCATION '/pgdata/pg_tblspc/ddis_ts_idx';
GRANT CREATE ON TABLESPACE ddis_ts_data TO as_admin;
GRANT CREATE ON TABLESPACE ddis_ts_idx TO as_admin;
После того как будут созданы каталоги, необходимо создать БД и пользователя, от имени которого будет выполнена первичная настройка БД (далее администратор БД). Для создания рекомендуется использовать утилиту psql — консольная утилита с помощью которой можно подключится к серверу баз данных PSQ. Psql устанавливается по умолчанию при установке PSQ.
Создание пользователя для наката скриптов миграций LiquiBase с ролью as_admin:
CREATE USER ddis<suffix> WITH
PASSWORD '***************'
LOGIN
NOCREATEDB
NOCREATEROLE
NOSUPERUSER
NOINHERIT
NOREPLICATION
NOBYPASSRLS;
GRANT as_admin TO ddis<suffix>;
ALTER ROLE ddis<suffix> SET role TO 'as_admin';
Подготовка схемы для сервиса ddis-controller#
Создание в БД схемы ddis_controller
-- Схема для владельца схемы приложения
CREATE SCHEMA ddis_controller<suffix> AUTHORIZATION as_admin;
GRANT ALL ON SCHEMA ddis_controller<suffix> TO as_admin;
GRANT USAGE ON SCHEMA ddis_controller<suffix> TO "as_TUZ";
Предоставление привилегий по умолчанию на схему в БД для ролей as_admin, as_TUZ:
``` roomsql
GRANT USAGE ON SCHEMA ddis_controller<suffix> TO "as_TUZ";
GRANT SELECT, UPDATE, INSERT, DELETE ON ALL TABLES IN SCHEMA ddis_controller<suffix> TO "as_TUZ";
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA ddis_controller<suffix> TO "as_TUZ";
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA ddis_controller<suffix> TO "as_TUZ";
GRANT EXECUTE ON ALL ROUTINES IN SCHEMA ddis_controller<suffix> TO "as_TUZ";
GRANT EXECUTE ON ALL PROCEDURES IN SCHEMA ddis_controller<suffix> TO "as_TUZ";
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_controller<suffix> GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO "as_TUZ";
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_controller<suffix> GRANT ALL PRIVILEGES ON SEQUENCES TO "as_TUZ";
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_controller<suffix> GRANT EXECUTE ON FUNCTIONS TO "as_TUZ";
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_controller<suffix> GRANT EXECUTE ON ROUTINES TO "as_TUZ";
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_controller<suffix> GRANT USAGE ON TYPES TO "as_TUZ";
GRANT ALL PRIVILEGES ON SCHEMA ddis_controller<suffix> TO as_admin;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA ddis_controller<suffix> TO as_admin;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA ddis_controller<suffix> TO as_admin;
GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA ddis_controller<suffix> TO as_admin;
GRANT ALL PRIVILEGES ON ALL ROUTINES IN SCHEMA ddis_controller<suffix> TO as_admin;
GRANT ALL PRIVILEGES ON ALL PROCEDURES IN SCHEMA ddis_controller<suffix> TO as_admin;
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_controller<suffix> GRANT ALL PRIVILEGES ON TABLES TO as_admin;
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_controller<suffix> GRANT ALL PRIVILEGES ON SEQUENCES TO as_admin;
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_controller<suffix> GRANT ALL PRIVILEGES ON FUNCTIONS TO as_admin;
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_controller<suffix> GRANT ALL PRIVILEGES ON ROUTINES TO as_admin;
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_controller<suffix> GRANT ALL PRIVILEGES ON TYPES TO as_admin;
Для работы c БД ddis_controller
для сервиса rspt-datamart пользователя datamart_appl:
--выполнить пользователем с правами dba
CREATE USER ddis_controller<suffix> WITH
PASSWORD '***************'
LOGIN
NOCREATEDB
NOCREATEROLE
NOSUPERUSER
NOINHERIT
NOREPLICATION
NOBYPASSRLS;
ALTER ROLE ddis_controller<suffix> SET search_path TO "$user" ;
GRANT "as_TUZ" TO ddis_controller<suffix>;
Подготовка схемы для сервиса ddis-gate-tfs#
Создание в БД схемы ddis_gate_tfs
-- Схема для владельца схемы приложения
CREATE SCHEMA ddis_gate_tfs<suffix> AUTHORIZATION as_admin;
GRANT ALL ON SCHEMA ddis_gate_tfs<suffix> TO as_admin;
GRANT USAGE ON SCHEMA ddis_gate_tfs<suffix> TO "as_TUZ";
Предоставление привилегий по умолчанию на схему в БД для ролей as_admin, as_TUZ:
GRANT USAGE ON SCHEMA ddis_gate_tfs<suffix> TO "as_TUZ";
GRANT SELECT, UPDATE, INSERT, DELETE ON ALL TABLES IN SCHEMA ddis_gate_tfs<suffix> TO "as_TUZ";
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA ddis_gate_tfs<suffix> TO "as_TUZ";
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA ddis_gate_tfs<suffix> TO "as_TUZ";
GRANT EXECUTE ON ALL ROUTINES IN SCHEMA ddis_gate_tfs<suffix> TO "as_TUZ";
GRANT EXECUTE ON ALL PROCEDURES IN SCHEMA ddis_gate_tfs<suffix> TO "as_TUZ";
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_gate_tfs<suffix> GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO "as_TUZ";
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_gate_tfs<suffix> GRANT ALL PRIVILEGES ON SEQUENCES TO "as_TUZ";
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_gate_tfs<suffix> GRANT EXECUTE ON FUNCTIONS TO "as_TUZ";
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_gate_tfs<suffix> GRANT EXECUTE ON ROUTINES TO "as_TUZ";
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_gate_tfs<suffix> GRANT USAGE ON TYPES TO "as_TUZ";
GRANT ALL PRIVILEGES ON SCHEMA ddis_gate_tfs<suffix> TO as_admin;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA ddis_gate_tfs<suffix> TO as_admin;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA ddis_gate_tfs<suffix> TO as_admin;
GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA ddis_gate_tfs<suffix> TO as_admin;
GRANT ALL PRIVILEGES ON ALL ROUTINES IN SCHEMA ddis_gate_tfs<suffix> TO as_admin;
GRANT ALL PRIVILEGES ON ALL PROCEDURES IN SCHEMA ddis_gate_tfs<suffix> TO as_admin;
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_gate_tfs<suffix> GRANT ALL PRIVILEGES ON TABLES TO as_admin;
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_gate_tfs<suffix> GRANT ALL PRIVILEGES ON SEQUENCES TO as_admin;
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_gate_tfs<suffix> GRANT ALL PRIVILEGES ON FUNCTIONS TO as_admin;
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_gate_tfs<suffix> GRANT ALL PRIVILEGES ON ROUTINES TO as_admin;
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_gate_tfs<suffix> GRANT ALL PRIVILEGES ON TYPES TO as_admin;
Для работы c БД ddis_gate_tfs
--выполнить пользователем с правами dba
CREATE USER ddis_gate_tfs<suffix> WITH
PASSWORD '***************'
LOGIN
NOCREATEDB
NOCREATEROLE
NOSUPERUSER
INHERIT
NOREPLICATION
NOBYPASSRLS;
ALTER ROLE ddis_gate_tfs_sb<suffix> SET search_path TO "$user" ;
GRANT "as_TUZ" TO ddis_gate_tfs<suffix>l;
Подготовка схемы для сервиса ddis-publish-lnse#
Создание в БД схемы ddis_publish_lnse
-- Схема для владельца схемы приложения
CREATE SCHEMA ddis_publish_lnse<suffix> AUTHORIZATION as_admin;
GRANT ALL ON SCHEMA ddis_publish_lnse<suffix> TO as_admin;
GRANT USAGE ON SCHEMA ddis_publish_lnse<suffix> TO "as_TUZ";
Предоставление привилегий по умолчанию на схему в БД для ролей as_admin, as_TUZ:
GRANT USAGE ON SCHEMA ddis_publish_lnse<suffix> TO "as_TUZ";
GRANT SELECT, UPDATE, INSERT, DELETE ON ALL TABLES IN SCHEMA ddis_publish_lnse<suffix> TO "as_TUZ";
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA ddis_publish_lnse<suffix> TO "as_TUZ";
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA ddis_publish_lnse<suffix> TO "as_TUZ";
GRANT EXECUTE ON ALL ROUTINES IN SCHEMA ddis_publish_lnse<suffix> TO "as_TUZ";
GRANT EXECUTE ON ALL PROCEDURES IN SCHEMA ddis_publish_lnse<suffix> TO "as_TUZ";
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_publish_lnse<suffix> GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO "as_TUZ";
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_publish_lnse<suffix> GRANT ALL PRIVILEGES ON SEQUENCES TO "as_TUZ";
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_publish_lnse<suffix> GRANT EXECUTE ON FUNCTIONS TO "as_TUZ";
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_publish_lnse<suffix> GRANT EXECUTE ON ROUTINES TO "as_TUZ";
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_publish_lnse<suffix> GRANT USAGE ON TYPES TO "as_TUZ";
GRANT ALL PRIVILEGES ON SCHEMA ddis_publish_lnse<suffix> TO as_admin;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA ddis_publish_lnse<suffix> TO as_admin;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA ddis_publish_lnse<suffix> TO as_admin;
GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA ddis_publish_lnse<suffix> TO as_admin;
GRANT ALL PRIVILEGES ON ALL ROUTINES IN SCHEMA ddis_publish_lnse<suffix> TO as_admin;
GRANT ALL PRIVILEGES ON ALL PROCEDURES IN SCHEMA ddis_publish_lnse<suffix> TO as_admin;
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_publish_lnse<suffix> GRANT ALL PRIVILEGES ON TABLES TO as_admin;
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_publish_lnse<suffix> GRANT ALL PRIVILEGES ON SEQUENCES TO as_admin;
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_publish_lnse<suffix> GRANT ALL PRIVILEGES ON FUNCTIONS TO as_admin;
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_publish_lnse<suffix> GRANT ALL PRIVILEGES ON ROUTINES TO as_admin;
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_publish_lnse<suffix> GRANT ALL PRIVILEGES ON TYPES TO as_admin;
Для работы c БД ddis_publish_lnse
--выполнить пользователем с правами dba
CREATE USER ddis_publish_lnse<suffix> WITH
PASSWORD '***************'
LOGIN
NOCREATEDB
NOCREATEROLE
NOSUPERUSER
INHERIT
NOREPLICATION
NOBYPASSRLS;
ALTER ROLE ddis_publish_lnse<suffix> SET search_path TO "$user";
GRANT "as_TUZ" TO ddis_publish_lnse<suffix> ;
Подготовка схемы для сервиса ddis-transformer#
Создание в БД схемы ddis_transformer
-- Схема для владельца схемы приложения
CREATE SCHEMA ddis_transformer<suffix> AUTHORIZATION as_admin;
GRANT ALL ON SCHEMA ddis_transformer<suffix> TO as_admin;
GRANT USAGE ON SCHEMA ddis_transformer<suffix> TO "as_TUZ";
Предоставление дефолтовых привилегий на схему в БД для ролей as_admin, as_TUZ:
GRANT USAGE ON SCHEMA ddis_transformer<suffix> TO "as_TUZ";
GRANT SELECT, UPDATE, INSERT, DELETE ON ALL TABLES IN SCHEMA ddis_transformer<suffix> TO "as_TUZ";
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA ddis_transformer<suffix> TO "as_TUZ";
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA ddis_transformer<suffix> TO "as_TUZ";
GRANT EXECUTE ON ALL ROUTINES IN SCHEMA ddis_transformer<suffix> TO "as_TUZ";
GRANT EXECUTE ON ALL PROCEDURES IN SCHEMA ddis_transformer<suffix> TO "as_TUZ";
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_transformer<suffix> GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO "as_TUZ";
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_transformer<suffix> GRANT ALL PRIVILEGES ON SEQUENCES TO "as_TUZ";
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_transformer<suffix> GRANT EXECUTE ON FUNCTIONS TO "as_TUZ";
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_transformer<suffix> GRANT EXECUTE ON ROUTINES TO "as_TUZ";
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_transformer<suffix> GRANT USAGE ON TYPES TO "as_TUZ";
GRANT ALL PRIVILEGES ON SCHEMA ddis_transformer<suffix> TO as_admin;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA ddis_transformer<suffix> TO as_admin;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA ddis_transformer<suffix> TO as_admin;
GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA ddis_transformer<suffix> TO as_admin;
GRANT ALL PRIVILEGES ON ALL ROUTINES IN SCHEMA ddis_transformer<suffix> TO as_admin;
GRANT ALL PRIVILEGES ON ALL PROCEDURES IN SCHEMA ddis_transformer<suffix> TO as_admin;
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_transformer<suffix> GRANT ALL PRIVILEGES ON TABLES TO as_admin;
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_transformer<suffix> GRANT ALL PRIVILEGES ON SEQUENCES TO as_admin;
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_transformer<suffix> GRANT ALL PRIVILEGES ON FUNCTIONS TO as_admin;
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_transformer<suffix> GRANT ALL PRIVILEGES ON ROUTINES TO as_admin;
ALTER DEFAULT PRIVILEGES FOR ROLE as_admin IN SCHEMA ddis_transformer<suffix> GRANT ALL PRIVILEGES ON TYPES TO as_admin;
Для работы c БД ddis_transformer
--выполнить пользователем с правами dba
CREATE USER ddis_transformer<suffix> WITH
PASSWORD '***************'
LOGIN
NOCREATEDB
NOCREATEROLE
NOSUPERUSER
INHERIT
NOREPLICATION
NOBYPASSRLS;
ALTER ROLE ddis_transformer<suffix> SET search_path TO "$user";
GRANT "as_TUZ" TO ddis_transformer<suffix> ;
Подготовка системы контейнеризации#
В качестве системы контейнеризации используется Kubernetes (рекомендуется использование продукта Platform V DropApp (K8S)).
Развертывание и настройка кластеров системы контейнеризации выполняется в соответствии с эксплуатационной документацией конечной информационной системы, в состав которой интегрируется компонент DDIS.
Если в качестве системы управления секретами предполагается использование Secret Management System (SecMan) или Hashicorp Vault, то кластер среды контейнеризации должен быть подключен к SecMan или Hashicorp Vault. Подключение осуществляется согласно эксплуатационной документации на соответствующее ПО.
Для компонента DDIS в кластере среды контейнеризации должно быть создано пространство имен (namespace). При создании именованной области среды контейнеризации должны быть учтены требования DDIS к выделяемым аппаратным ресурсам (приведены в разделе Аппаратные требования настоящего Руководства по установке). Кроме того, должны быть учтены требования к выделяемым аппаратным ресурсам компонентов, не входящих в поставку компонента DDIS, но размещаемых внутри пространства имен DDIS.
Для подключения инструментов развертывания компонента DDIS (рекомендован компонент Deploy tools (CDJE) продукта Platform V DevOps Tools (DOT)) к пространству имен DDIS в среде контейнеризации должна быть создана и настроена сервисная учетная запись (ServiceAccount) с правами на загрузку артефактов. Рекомендованное имя сервисной учетной записи — deploy. Рекомендуется получить токен сервисной учетной записи, так как он требуется при настройке CDJE.
Примеры команд получения токена:
kubectl get serviceaccounts <имя сервисной учетной записи> -o yaml --namespace=<имя пространства имен>
kubectl get secret <имя сервисного аккаунта>-token-* -o yaml --namespace=<имя пространства имен> --namespace=<имя пространства имен>
Пример ответного сообщения с токеном:
apiVersion: v1
data:
ca.crt: (APISERVER'S CA BASE64 ENCODED)
---
token: (BEARER TOKEN BASE64 ENCODED)
kind: Secret
metadata:
...
type: kubernetes.io/service-account-token
Для выполнения команд рекомендуется использовать инструмент командной строки Kubernetes Kubectl. Kubectl является составной частью Kubernetes, устанавливается на рабочей станции. Версия Kubectl не должна отличаться от той, которая используется в кластере среды контейнеризации. Для выполнения команд требуются права администратора кластера среды контейнеризации.
Пространство имен компонента DDIS должно быть подключено к сервисной сетке (service mesh) Istio (рекомендуется использование продукта Platform V Synapse Service Mesh (SSM)). Подключение осуществляется в соответствии с эксплуатационной документацией продукта, предоставляющего инфраструктуру сервисной сетки (service mesh) в кластере среды контейнеризации.
Подготовка сертификатов#
Для поставляемой конфигурации компонента DDIS требуются следующие ключи и сертификаты:
сертификат и ключ клиента для шлюза Egress;
корневой и промежуточные сертификаты удостоверяющего центра для шлюза Egress;
сертификат и ключ сервера для шлюза Ingress;
корневой и промежуточные сертификаты удостоверяющего центра для шлюза Ingress;
клиентский ключ и сертификат для подключения к topic (Kafka);
корневой сертификат удостоверяющего центра, выпустившего сертификат для подключения к topic (Kafka);
клиентский ключ и сертификат для подключения к topic (Kafka) для обмена с LOGA;
корневой сертификат удостоверяющего центра, выпустившего сертификат для подключения к topic (Kafka) для обмена с LOGA;
сертификат и ключ клиента для подключения к PSQL в SSL-режиме;
корневой сертификат удостоверяющего центра, выпустившего сертификат клиента для подключения к PSQL в SSL-режиме;
сертификат и ключ клиента для обмена с OTTS;
корневой сертификат удостоверяющего центра, выпустившего сертификат клиента для обмена с OTTS.
Процедура выпуска сертификатов регламентируется эксплуатационной документацией конечной информационной системы, в состав которой интегрируется компонент DDIS.
Ключи и сертификаты, используемые для подключения к topic (Kafka), должны быть размещены в JKS-хранилище типа keystore. Пароль шифрования каждого размещенного в хранилище закрытого ключа должен совпадать с паролем доступа к этому хранилищу. Для управления JKS-хранилищем рекомендуется использовать java утилиту Keytool.
Корневые сертификаты должны быть размещены в JKS-хранилище типа truststore. В truststore допускается размещение нескольких корневых сертификатов разных удостоверяющих центров.
Выпускать ключи и сертификаты для подключения к PSQL в SSL-режиме необходимо используя утилиту Openssl версии не ниже той, которая используется в CУБД.
Корневой сертификат должен быть выпущен с параметром extension v3_ca.
При подготовке клиентских ключа и сертификата должны быть учетны следующие требования:
клиентский сертификат должен быть выпущен в формате PEM (файл ASCII в кодировке bas64);
атрибут CN (Common Name) клиентского сертификата должен совпадать с логином пользователя БД DDIS;
файл клиентского ключа должен быть сконвертирован в двоичный формат DER.
Подготовка секретов#
Помимо ключей, сертификатов и их хранилищ (приведены в разделе Подготовка сертификатов настоящего Руководства по установке) в поставляемой конфигурации компонента DDIS используются секреты:
логин и пароль пользователя, от имени которого приложения будут обращаться к базе данных;
логин и пароль пользователя, от имени которого будет выполняться накат скриптов LiquiBase для управления объектами базы данных (секрет используется в процессе установки компонента).
accessKey и secretKey, от имени которого будет приложения будут обращаться к содержимому в облачном хранилище по протоколу S3.
Для хранения секретов, используемых компонентом DDIS в процессе его функционирования, рекомендуется использовать Secret Management System (SecMan) или Hashicorp Vault.
Для доставки секретов в среду функционирования компонента DDIS рекомендуется использовать sidecar-приложения vault-agent.
При подготовке к установке DDIS секреты, используемые компонентом DDIS в процессе его функционирования, должны быть размещены в KV-хранилище SecMan. Описание подготовки KV-хранилища SecMan приведено в разделе Настройка интеграции настоящего Руководства по установке.
Установка#
Автоматизированная установка сервиса с использованием Deploy Tools#
Установка DDIS производится путем создания объектов в среде контейнеризации на основе поставляемых в дистрибутиве компонента конфигурационных yaml-файлов. В процессе установки для указанных в yaml-файлах параметров устанавливаются значения, характерные для среды функционирования DDIS.
Перед установкой необходимо выполнить следующие действия:
проверить соответствие версии скриптов установки программного обеспечения (pipeline) версии, указанной в файле
/package/conf/version.confдистрибутива конфигурации развертывания компонента DDIS;проверить наличие нужных сценариев (playbook) в списке сценариев сборки в Jenkins.
Функциональностью компонента Deploy tools (CDJE) продукта Platform V DevOps Tools (DOT) предусмотрена проверка конфигураций компонентов перед их установкой. Проверка конфигурации заключается в проверке доступности инфраструктуры и наличия в конфигурационных файлах некорректно настроенных параметров. Набор сценариев (playbook) для выполнения проверки задается в разделе playbooks_default файла distrib.ym дистрибутивного комплекта устанавливаемого компонента.
По умолчанию проверка выполняется при запуске задания (job) Jenkins, предназначенного для установки компонентов. Проверку можно отключить, установив в false параметр forcePreCheck в файле environment.json репозитория Сommon.
Также предусмотрена возможность ручного запуска проверки конфигурации. Для ручного запуска проверки конфигурации компонента DDIS нужно выполнить следующие действия:
перейти к заданию (job) Jenkins, предназначенному для установки приложений;
в меню слева выбрать опцию Собрать с параметрами;
установить параметры сборки:
указать
SUBSYSTEM: выбрать DDIS,указать
DISTRIB_VERSION: выбрать версию дистрибутива конфигурации развертывания,указать
OSE_CLUSTERS: выбрать кластер K8S,Репозиторий/ветка с настройками: выбрать основную ветку конфигурации в соответствии с настройками Deploy Tools (CDJE),
выбрать сценарии (playbook): FP_CONF_CHECK;
запустить сборку, нажав кнопку Собрать.
После завершения сборки проанализировать лог-файл на предмет наличия ошибок в конфигурационных файлах DDIS.
Для установки компонента DDIS необходимо:
перейти к заданию Jenkins, предназначенному для установки компонентов платформы (JOB Deploy);
в меню слева выбрать опцию Собрать с параметрами;
установить параметры сборки:
указать
SUBSYSTEM: выбрать DDIS,указать
DISTRIB_VERSION: выбрать версию дистрибутива конфигурации развертывания,указать
OSE_CLUSTERS: выбрать кластер K8S,Репозиторий/ветка с настройками: выбрать основную ветку конфигурации в соответствии с настройками компонента Deploy Tools (CDJE),
выбрать сценарии (playbook):
MIGRATION_FP_CONF,
DB_UPDATE,
OPENSHIFT_DEPLOY,
OPENSHIFT_INGRESS_EGRESS_DEPLOY,
IMPORT_ALL_PARAMS (при первичной установке этот сценарий (playbook) необходимо выполнить отдельно, после предыдущих в списке);
запустить сборку, нажав кнопку Собрать.
После завершения сборки необходимо проверить лог-файл на предмет наличия ошибок.
При наличии в среде установки компонента DDIS компонента Внутренний шлюз (IAGW) продукта Platform V Frontend Std (#FS) дополнительно нужно выбрать сценарии (playbook):
NGINX_DEPLOY;
NGINX_II_DEPLOY.
Краткое описание сценариев (playbook), исполняемых при установке компонента DDIS:
Сценарий (playbook) |
Описание |
|---|---|
MIGRATION_FP_CONF |
Миграция настроек из дистрибутива компонента в промежуточный репозиторий |
DB_UPDATE |
Запуск LiquiBase-скриптов миграции БД |
OPENSHIFT_DEPLOY |
Установка приложений компонента; название сценария (playbook) одинаково для обоих оркестраторов |
OPENSHIFT_INGRESS_EGRESS_DEPLOY |
Установка шлюзов Ingress и Egress в проектную область (namespace) компонента (компонент Граничный и сервисный прокси (IGEG)); название сценария (playbook) одинаково для обоих оркестраторов |
NGINX_DEPLOY |
Импорт конфигурационных файлов и установка PL-компонентов на группы серверов nginx/nginx_ui (компонент Внутренний шлюз (IAGW) |
NGINX_II_DEPLOY |
Импорт конфигурационных файлов на группы серверов nginx_ii (компонент Внутренний шлюз (IAGW)) |
IMPORT_ALL_PARAMS |
Импорт наполнения тестовых справочников, импорт настроек в платформенные компоненты |
Набор возможных сценариев (playbook) зависит от конфигурации инструментов Deploy Tools (CDJE) продукта Platform V DevOps Tools (DOT).
Для переключения трафика между компонентом DDIS текущей версии, развернутом в среде контейнеризации K8S, и компонентом DDIS предыдущей версии, развернутом в другой среде контейнеризации, необходимо:
в файле
_global.resources.confрепозитория Common изменить значение параметраglobal.platform.iag.default.route:значение
dropapp— маршрутизация трафика в K8S;
запустить задание (job) Jenkins, предназначенное для установки компонентов, выбрав сценарии (playbook):
NGINX_DEPLOY,
NGINX_II_DEPLOY.
После завершения выполнения задания (job) Jenkins необходимо проверить лог-файл на предмет наличия ошибок.
Подготовка хранилища S3#
Подключение к хранилищу S3:

После успешного подключения появится главное меню:

Имя корзины формируется по правилу:
должно быть длиной не менее 3 символов и не более 63;
может содержать только строчные буквы, цифры и дефис;
должно начинаться и заканчиваться на букву или цифру;
не должно содержать несколько дефисов подряд.
Настройка интеграции#
Параметры интеграции с компонентом Pangolin (PSQL) продукта Platform V Pangolin SE (PSQ)#
Для хранения обрабатываемых компонентом DDIS данных необходимо использовать реляционную БД под управлением Pangolin (PSQL) продукта Platform V Pangolin SE (PSQ).
Для получения доступа к БД компонентом DDIS используется набор программных интерфейсов JDBC.
При подключении приложений DDIS к CУБД Pangolin (PSQL) рекомендуется использовать протокол mTLS 1.2., обеспечивающий взаимную аутентификацию сторон, участвующих в передаче данных.
Описание параметров для безопасной передачи логина, пароля и SSL-сертификатов доступа к БД в среду функционирования компонента DDIS приведено в разделе Настройка интеграции с Hashicorp Vault или Secret Management System настоящего Руководства по установке.
Параметры подключения компонента DDIS к СУБД устанавливаются путем определения их значений в файлах \conf\config\parameters\ddis.all.conf и \conf\config\parameters\ddis.istio.all.conf дистрибутива конфигурации развертывания компонента DDIS:
Файл дистрибутива |
Параметр дистрибутива |
Описание |
|---|---|---|
ddis.all.conf |
ddis.jdbc.ddis_postgres.url |
Путь к СУБД, используется при выполнении запросов к БД, рекомендованное значение — |
ddis.istio.all.conf |
ddis.istio.egress.common.db.mtls.enabled |
Режим взаимодействия с СУБД, рекомендованное значение — |
ddis.istio.egress.common.db.ddis.servers |
Порт для обращения компонента через Egress к СУБД, рекомендованное значение — , значение переменной устанавливается в файле репозитория Сommon |
Параметры подключения к CУБД Pangolin (PSQL) для исполнения включенных в состав дистрибутивного комплекта компонента DDIS скриптов LiquiBase устанавливаются путем определениях их значений в секции dbscripts файла \conf\distrib.yml дистрибутива конфигурации развертывания:
Файл дистрибутива |
Параметр дистрибутива |
Описание |
|---|---|---|
distrib.yml |
schema |
Первый фасет в наименовании схемы БД |
url |
Путь к БД, значение переменной устанавливается в файле репозитория Сommon |
|
username |
Логин LiquiBase-пользователь БД DDIS, значение — для каждой схемы свой, значение переменной устанавливается в файле репозитория Сommon |
|
password |
Пароль LiquiBase-пользователь БД DDIS, значение — для каждой схемы свой, значение переменной устанавливается в файле репозитория Сommon |
|
definitions.schema_name |
Первый фасет в наименовании схемы БД, актуален для схемы ddis-gate-tfs |
|
definitions.tablespace_data |
Имя табличного пространства для хранения данных, значение — ddis_ts_data |
|
definitions.tablespace_index |
Имя табличного пространства для хранения индексов, значение — ddis_ts_idx |
|
definitions.tablespace_t |
Имя табличного пространства для хранения данных, значение — ddis_ts_data |
|
definitions.tablespace_i |
Имя табличного пространства для хранения индексов, значение — ddis_ts_idx |
При определении параметров подключения к СУБД используются переменные, значения которых устанавливаются в файлах репозитория Сommon:
Переменная репозитория Сommon |
Описание |
|---|---|
DDIS_POSTGRES_DB_URL |
Путь к БД, значение указывается в common.conf.yml |
DDIS_POSTGRES_DB_ADMIN |
Логин LiquiBase-пользователь БД DDIS, значение указывается в _passwords.conf |
DDIS_POSTGRES_DB_PASS |
Пароль LiquiBase-пользователь БД DDIS, значение указывается в _passwords.conf |
DB_SCHEMA_SUFFIX |
Второй фасет в наименовании схемы БД, значение указывается в common.conf.yml |
Файл _password.conf репозитория Сommon выступает в роли хранилища значений секретных параметров и хранится в репозитории в формате OpenSSL. Алгоритм openssl — aes-256-cbc. Для шифрования и расшифровки файла с рабочей машины рекомендуется использовать утилиту OpenSSL.
Примечание
Примечание
Интеграция с PostgreSQL происходит так же как с компонентом Pangolin (PSQL).
Настройка интеграции с Hashicorp Vault или Secret Management System#
Компонент DDIS может быть интегрирован с Secret Management System (SecMan) — это инструмент, который обеспечивает безопасный способ хранения и распространения секретов, базируется на хранилище секретов Hashicorp Vault.
Примечание
Примечание
При необходимости, может использоваться Hashicorp Vault. Для интеграции с требуемым продуктом обратитесь к его эксплуатационной документации, размещенной на сайте производителя.
В поставляемой конфигурации компонента DDIS для интеграции с Secret Management System (SecMan) используются sidecar-приложения vault-agent.
Приложение vault-agent — дополнение SecMan, которое обеспечивает доставку секретов в файловую систему среды функционирования приложений компонента DDIS.
При организации информационного обмена с SecMan должно быть подготовлено KV-хранилище SecMan, для размещения следующих секретов, используемых компонентом DDIS:
логин и пароль доступа к БД;
сертификат и ключ клиента для подключения к PSQL в SSL-режиме;
корневой сертификат удостоверяющего центра, выпустившего сертификат клиента для подключения к PSQL в SSL-режиме;
keystore — хранилище JKS c сертификатами клиента;
truststore — хранилище JKS c корневыми сертификатами;
сертификат и ключ клиента для шлюза Egress;
корневой и промежуточные сертификаты удостоверяющего центра для шлюза Egress;
сертификат и ключ сервера для шлюза Ingress;
корневой и промежуточные сертификаты удостоверяющего центра для шлюза Ingress;
сертификат и ключ клиента для подключения к topic (kafka) LOGA;
корневой сертификат удостоверяющего центра, выпустившего сертификат клиента для подключения к topic (kafka) LOGA;
сертификат и ключ клиента для обмена с OTTS;
корневой сертификат удостоверяющего центра, выпустившего сертификат клиента для обмена с OTTS.
Для секретов KV-хранилище SecMan должны быть определены ключи:
Секрет |
Ключ |
Описание |
|---|---|---|
${global.platform.annotations.hashicorp.cert.client.secretName} |
postgre-tls.crt |
Сертификат клиента для подключения к PSQL в SSL-режиме |
postgre-tls.key |
Ключ сертификата клиента для подключения к PSQL в SSL-режиме |
|
postgre-serial_number |
Серийный номер сертификата клиента для подключения к PSQL в SSL-режиме |
|
${global.platform.annotations.hashicorp.rootCertsPath} |
postgre-root.crt |
Корневой сертификат удостоверяющего центра, выпустившего сертификат клиента для подключения к PSQL в SSL-режиме |
global.platform.annotations.hashicorp.cert.client.secretName |
keystore.jks |
Хранилище JKS c сертификатом клиента |
keystore_pass |
Ключевая фраза хранилища JKS c сертификатом клиента |
|
serial_number |
Серийный номер сертификата клиента |
|
${global.platform.annotations.hashicorp.rootCertsPath} |
truststore_jks |
Хранилище JKS c сертификатом сервера |
truststore_pass |
Ключевая фраза хранилища JKS c сертификатом сервера |
|
${global.platform.annotations.hashicorp.cert.client.secretNam} |
client_tls.crt |
Сертификат клиента для шлюза Egress |
client_tls.key |
Ключ сертификата клиента для шлюза Egress |
|
${global.platform.annotations.hashicorp.rootCertsPath} |
client_root.crt |
Корневой сертификат удостоверяющего центра, выпустившего сертификат клиента для шлюза Egress |
${global.platform.annotations.hashicorp.cert.server.secretName} |
server_tls.crt |
Сертификат сервера для шлюза Ingress |
server_tls.key |
Ключ сертификата сервера для шлюза Ingress |
|
${global.platform.annotations.hashicorp.rootCertsPath} |
server_root.crt |
Корневой сертификат удостоверяющего центра, выпустившего сертификат клиента для шлюза Ingress |
${global.platform.annotations.hashicorp.cert.client.secretName} |
pvm_client_tls.crt |
Сертификат клиента для подключения к topic (kafka) LOGA |
pvm_client_tls.key |
Ключ сертификата клиента для подключения к topic (kafka) LOGA |
|
${global.platform.annotations.hashicorp.rootCertsPath} |
pvm_client_root.crt |
Корневой сертификат удостоверяющего центра, выпустившего сертификат клиента для подключения к topic (kafka) LOGA |
${global.platform.annotations.hashicorp.ott.cert.client.secretName} |
ott_cert.pem |
Сертификат клиента для обмена с OTTS |
ott_key.pem |
Ключ сертификата клиента для обмена с OTTS |
|
${global.platform.annotations.hashicorp.rootCertsPath} |
ott_root.pem |
Корневой сертификат удостоверяющего центра, выпустившего сертификат клиента OTTS |
${global.platform.annotations.hashicorp.rootCertsPath} |
truststore_cer |
Корневой сертификат удостоверяющего центра, выпустившего сертификат клиента для подключения к PSQL в SSL-режиме |
Кроме того, в KV-хранилище должны быть размещены секреты, для которого должны быть определены ключи и значения ключей:
Секрет |
Ключ |
Описание |
|---|---|---|
ddis.secman.db.role.controller |
username |
Логин доступа к БД компонента DDIS схемы сервиса контроллера (ddis-controller) |
password |
Пароль доступа к БД компонента DDIS схемы сервиса контроллера (ddis-controller) |
|
ddis.secman.db.role.gateway |
username |
Логин доступа к БД компонента DDIS схемы сервиса контроллера (ddis-gate-tfs) |
password |
Пароль доступа к БД компонента DDIS схемы сервиса контроллера (ddis-gate-tfs) |
|
ddis.secman.db.role.dictionary |
username |
Логин доступа к БД компонента DDIS схемы сервиса контроллера (ddis-publish-lnse) |
password |
Пароль доступа к БД компонента DDIS схемы сервиса контроллера (ddis-publish-lnse) |
|
ddis.secman.db.role.transformer |
username |
Логин доступа к БД компонента DDIS схемы сервиса контроллера (ddis-transformer) |
password |
Пароль доступа к БД компонента DDIS схемы сервиса контроллера (ddis-transformer) |
|
ddis.secman.kv.secret.s3 |
accesskey |
AccessKey к локальному облачному хранилищу DDIS по протоколу S3 |
secretkey |
SecretKey к локальному облачному хранилищу DDIS по протоколу S3 |
|
ddis.secman.kv.secret.s3-tfs |
ddis.files.bucket.in.connection.accessKey |
AccessKey к интеграционному облачному хранилищу по протоколу S3 |
ddis.files.bucket.in.connection.secretKey |
SecretKey к интеграционному облачному хранилищу по протоколу S3 |
Путь до KV-хранилища к секретам компонента (файл ddis.vault.all.conf):
ddis.vault.hashicorp.com.agent-inject-template.kv.baseEngineMountPath — в случае секретов с сертификатами; ddis.secman.kv.path — в случае секретов приложений, отличных от сертификатов.
Для обеспечения доступа к секретам из приложений vault-agent, развернутых в pod-ах компонента DDIS, в SecMan должна быть настроена роль. Требуется доступ из пространства имен (namespace) DDIS к KV-хранилищу SecMan на чтение секретов и их списка.
При конфигурировании PKI движков в Secman должны быть настроены роль для выпуска сертификатов методом fetch.
Настройки подключения vault-agent к pods компонента DDIS определяются в файлах \conf\k8s\base\ddis-*\deploy.yaml, \conf\k8s\base\istio\deployments\ingress\deploy_mtls.yaml и \conf\k8s\base\istio\deployments\egress\deploy_mtls.yaml (для среды контейнеризации K8S) дистрибутива конфигурации развертывания. Файлы содержат инструкции выпуска сертификатов и извлечения секретов из SecMan. Секреты извлекаются из внешнего кластера SecMan с использованием аннотаций secman-injector в YAML-файлах. Аннотации представляют собой инструкции по конфигурации для secman-injector, добавляющего sidecar-контейнер vault-agent в pod приложения.
Параметры интеграции с SecMan устанавливаются в файле \conf\config\parameters\ddis.vault.all.conf дистрибутива конфигурации развертывания компонента DDIS.
В компоненте DDIS реализована загрузка контейнеров с несколькими корневыми сертификатами разных удостоверяющих центров из KV-хранилища секретов SecMan. Путь к KV-хранилищу с корневыми сертификатами задается в параметре ddis.ose.deployment.spec.template.metadata.annotations.vault.hashicorp.com.rootCertsPath в файле ddis.vault.all.conf дистрибутива конфигурации развертывания компонента.
Параметры функционирования компонента Граничный и сервисный прокси (IGEG) продукта Platform V Synapse Service Mesh (SSM) в составе компонента DDIS#
Компонент Граничный и сервисный прокси (IGEG) добавляется в пространство имен (namespace) компонента DDIS в виде контейнера istio-proxy с приложением Ingress gateway и контейнера istio-proxy с приложением Egress gateway. IGEG выполняют роль управляемого маршрутизатора трафика, приходящего и исходящего из пространства имен (namespace) DDIS. Рекомендованный образ sidecar-контейнера istio-proxy приведен в разделе Состав дистрибутива настоящего Руководства по установке.
Параметры функционирования IGEG устанавливаются путем определения их значений в файлах дистрибутива конфигурации развертывания компонента DDIS:
минимальная конфигурация аппаратного обеспечения среды контейнеризации для istio-proxy устанавливается в файле
\conf\config\parameters\ddis.istio.all.conf;настройки istio-proxy задаются в файлах
\conf\k8s\base\istio\config\egress\*.yaml,\conf\config\parameters\ddis.istio.all.conf. Файлddis.istio.all.conf, в том числе, содержит путь к API контрольной панели (задается в параметреddis.istio.istiod_service);настройки Ingress gateway задаются в файле
\conf\k8s\base\istio\deployments\ingress\dc-ingress.yaml(для среды контейнеризации K8S). В файле, в том числе, указан путь к используемому образу контейнера istio-proxy;настройки Egress gateway задаются в файле
\conf\k8s\base\istio\deployments\egress\dc-egress.yaml(для среды контейнеризации K8S). В файле, в том числе, указан путь к используемому образу контейнера istio-proxy;настройки информационного обмена между смежными АС и Ingress gateway задаются в файлах
\conf\k8s\base\istio\deployments\ingress\route-ingress.yaml\(для среды контейнеризации K8S),\conf\k8s\base\istio\deployments\ingress\*.yaml;настройки информационного обмена между Ingress gateway и прикладными контейнерами компонента DDIS задаются в файлах
\conf\k8s\base\istio\config\ingress\*.yaml;настройки информационного обмена между прикладными контейнерами компонента DDIS, смежными АС и Egress gateway задаются в файлах
\conf\k8s\base\istio\config\egress\*.yaml.
Добавление файлов настроек и манифестов, необходимых для развертывания в пространстве имен (namespace) DDIS ingress/egress, обеспечивает расширение (extension) injectIstio, описанное в файле pipeline.yml дистрибутива конфигурации развертывания DDIS:
extensions:
- name: injectIstio
branch: refs/tags/1.14.26
arguments:
templatesRepo: sre/istio-templates.git
templatesBranch: refs/tags/_FS-4.6.3-1.0.39
overrideParameters:
"ddis.ose.istio.egress.tls-list.cloud-s3.vs.spec.http.timeout": 50s
Параметры функционирования компонента Сервисный прокси (SVPX) продукта Platform V Synapse Service Mesh (SSM) в составе компонента DDIS#
Компонент Cервисный прокси (SVPX) добавляется в каждый прикладной pod компонента DDIS в виде sidecar-контейнера istio-proxy. Istio-proxy используется для маршрутизации трафика между приложениями. Рекомендованный образ sidecar-контейнера istio-proxy приведен в разделе Состав дистрибутива настоящего Руководства по установке.
Минимальная конфигурация аппаратного обеспечения среды контейнеризации для sidecar-контейнера istio-proxy устанавливается в файлах \conf\config\parameters\ddis.iation.all.conf дистрибутива конфигурации развертывания компонента DDIS.
Для запуска приложений компонента DDIS c sidecar-контейнерами istio-proxy в файлах \conf\k8s\base\ddis-*\deploy.yaml (для среды контейнеризации K8S) дистрибутива конфигурации развертывания компонента DDIS добавлена аннотация sidecar.istio.io.
Параметры интеграции с компонентом One-Time Password (OTP) / OTT (OTTS) продукта Platform V Frontend Std (#FS)#
В части аутентификации и авторизации межсервисных взаимодействий компонент DDIS может быть интегрирован с компонентом One-Time Password/Token (OTTS). Для включения информационного обмена с OTTS в файле openShift.conf репозитория Сommon параметр global.ott.ose_deploy должен быть установлен в true.
OTTS предоставляет средства для удостоверения субъекта доступа и разграничения доступа к API компонента DDIS на транспортном уровне, а также контроля целостности получаемого сообщения. Согласно требованиям безопасности с помощью OTTS необходимо защищать взаимодействия, выходящие за границы пространства имен (namespace).
Для интеграции с компонентом One-Time Password (OTP) / OTT (OTTS) используются sidecar-приложения ott-sidecar, которые размещаются в подах шлюзов Ingress и Egress компонента DDIS. Рекомендованный образ sidecar-контейнера ott-sidecar приведен в разделе Состав дистрибутива настоящего Руководства по установке.
Взаимодействие с OTTS должно осуществляться с использованием шифрованного протокола обмена.
Параметры интеграции с OTTS устанавливаются путем определения их значений в файлах дистрибутива конфигурации развертывания компонента DDIS:
минимальная конфигурация аппаратного обеспечения среды контейнеризации для ott-sidecar устанавливается в файле
\conf\config\parameters\ddis-sidecar-ott.all.conf;настройки подключения ott-sidecar к pods шлюзов Ingress и Egress задаются в файлах
\conf\k8s\base\istio\deployments\egress\ott-*.yaml,\conf\k8s\base\istio\deployments\ingress\ott-*.yaml(для среды контейнеризации K8S). В файлах, в том числе, указан путь к используемому образу ott-sidecar;настройки ott-sidecar задаются в файлах
\conf\config\parameters\ddis-sidecar-ott.all.conf,\conf\config\parameters\ddis.istio.all.conf.
Добавление файлов настроек и манифестов, необходимых для развертывания в пространстве имен (namespace) DDIS ott-sidecar, обеспечивает расширение (extension) injectIstio, описанное в файле pipeline.yml дистрибутива конфигурации развертывания DDIS:
extensions:
- name: injectIstio
branch: refs/tags/1.14.26
arguments:
templatesRepo: sre/istio-templates.git
templatesBranch: refs/tags/_FS-4.6.3-1.0.39
overrideParameters:
"ddis.ose.istio.egress.tls-list.cloud-s3.vs.spec.http.timeout": 50s
Параметры интеграции с компонентом Стартовый менеджер (SMGX) продукта Platform V Frontend Std (#FS)#
В состав дистрибутива конфигурации развертывания компонента DDIS включены файлы, предназначенные для публикации в компоненте Стартовый менеджер (SMGX).
Компонент Стартовый менеджер (SMGX) — это технологический сервис, который является унифицированной точкой доступа к функциям фронтальной части компонентов, реализованных на Platform V. SMGX агрегирует в себе АРМ интегрированных с ним компонентов.
Компонент DDIS встраивается в SMGX в виде операции.
Операция описывается JSON-файле ddis_amw.json, который включен в дистрибутив конфигурации развертывания компонента DDIS. Файл размещается в каталоге distr_content/data/smgx_amw/templates.
При установке компонента DDIS средствами Deploy tools (CDJE), импорт конфигурационных файлов в SMGX выполняется при запуске сценария (playbook) IMPORT_SMGX_AMW_PARAMS (входит в состав сценария IMPORT_ALL_PARAMS).
Для получения доступа к созданной в SMGX операции компонента DDIS учетной записи пользователя должны быть сопоставлены привилегия, заданная в параметре permission json-файла с описанием операции, и стандартные привилегии SMGX.
Необходимые привилегии включены в рекомендованную модель авторизации компонента DDIS.
Параметры интеграции с компонентом Внутренний шлюз ЕФС (IAGW) продукта Platform V Frontend Std (#FS)#
Внутренний шлюз ЕФС (IAGW) предназначен для управления трафиком между различными компонентами Platform V. При наличии в среде функционирования компонента шлюза IAGW, HTTP-запросы к конкретному программному интерфейсу сначала отправляются на шлюз, далее шлюз осуществляет маршрутизацию и балансировку запросов по серверам, на которых развернут компонент.
В состав дистрибутива конфигурации развертывания компонента DDIS включены файлы, предназначенные для публикации в IAGW. Файлы находятся в каталогах \conf\global, \conf\global\iag дистрибутива.
Файлы предназначены для импорта в IAGW средствами Deploy tools (CDJE). Импорт в IAGW выполняется при запуске playbook NGINX_
II — IAG_II;
без указания
— IAG_UI.
Параметры интеграции с компонентом Журналирование (LOGA) продукта Platform V Monitor (OPM)#
В части сбора и хранения событий журналирования компонент DDIS может быть интегрирован с компонентом Журналирование (LOGА).
Для интеграции компонента DDIS с LOGA используется sidecar-приложение ulogger-sidecar.
Fluent-bit-sidecar вычитывает события из лог-файлов, формируемых прикладными и sidecar-приложениями, шлюзами Ingress gateway и Egress gateway, и передает их в один или несколько удаленных компонентов журналирования для дальнейшей обработки, используя topic (Kafka).
Fluent-bit-sidecar не входит в поставку компонента DDIS. Добавление файлов настроек и манифестов, необходимых для развертывания в пространстве имен (namespace) DDIS ulogger-sidecar, обеспечивает расширение (extension) injectUloggerSidecar, описанное в файле pipeline.yml дистрибутива конфигурации развертывания DDIS:
- name: injectUloggerSidecar
branch: refs/tags/1.14.26
arguments:
fpName: 'ddis'
kafka:
loge:
internalHost: "ddis-loge-egress-kafka-svc-{{distrib.release.version}}"
internalPort: "19092"
loga:
internalHost: "ddis-loga-egress-kafka-svc-{{distrib.release.version}}"
internalPort: "19093"
logsys:
internalHost: "ddis-logsys-egress-kafka-svc-{{distrib.release.version}}"
internalPort: "19094"
overrideParameters:
"ufs-extensions.ulogger.sidecar.logging.subsystem": DDIS
"ufs-extensions.ulogger.sidecar.pvm.kafka.ssl.clientCertificate": "{{ lookup('custom_vars', 'ddis.ulogger.sidecar.pvm.kafka.ssl.clientCertificate') }}"
"ufs-extensions.ulogger.sidecar.pvm.kafka.ssl.key": "{{ lookup('custom_vars', 'ddis.ulogger.sidecar.pvm.kafka.ssl.key') }}"
"ufs-extensions.ulogger.sidecar.secman.kv.storage.path.rootCertificate": "{{ lookup('custom_vars','ddis.vault.hashicorp.com.uloggerRootCertsPath') }}"
"ufs-extensions.ulogger.sidecar.secman.kv.storage.data.rootCertificate": index .Data "truststore_pem"
"ufs-extensions.ulogger.sidecar.logging.file.path": "{{ lookup('custom_vars', 'ddis.platform.logm.file.json.filePath') }}"
"ufs-extensions.ulogger.sidecar.service.logging.file.name": '*.json'
"ufs-extensions.ulogger.sidecar.istio.logging.logrotate_conf_path": /var/log/audit/logrotate.conf
"ufs-extensions.ulogger.sidecar.istio.logging.logrotate_status_path": /var/log/audit/logrotate.status
"ufs-extensions.ulogger.sidecar.istio.logging.logrotate_olddir_path": /var/log/audit/istio
"ufs-extensions.ulogger.vault.kafka.tls.caCertificates": "{{ lookup('custom_vars', 'ddis.istio.egress.certificates.path.root.crt') }}"
"ufs-extensions.ulogger.vault.kafka.tls.clientCertificate": "{{ lookup('custom_vars', 'ddis.istio.egress.certificates.path.tls.crt') }}"
"ufs-extensions.ulogger.vault.kafka.tls.privateKey": "{{ lookup('custom_vars', 'ddis.istio.egress.certificates.path.tls.key') }}"
"ufs-extensions.ulogger.hashicorp.enabled": "true"
"ufs-extensions.ulogger.sidecar.securityContext.runAsUser": "{{ lookup('custom_vars', 'ddis.ulogger.sidecar.securityContext.runAsUser', default='1337') }}"
"ufs-extensions.ulogger.sidecar.securityContext.runAsGroup": "{{ lookup('custom_vars', 'ddis.ulogger.sidecar.securityContext.runAsGroup', default='1337') }}"
"ufs-extensions.ulogger.sidecar.securityContext.fsGroup": "{{ lookup('custom_vars', 'ddis.ulogger.sidecar.securityContext.fsGroup', default='1337') }}"
"ufs-extensions.ulogger.ott.sidecar.env.java_tool_options": -XX:+UseContainerSupport -XX:MaxRAMPercentage=75.0 -Dlogging.config=/mnt/ott-logback/logback.xml -Dlogback.configurationFile=/mnt/ott-logback/logback.xml
"ufs-extensions.ulogger.ose.istio.envoy.logging.level": "{{ lookup('custom_vars', 'ddis.ulogger.sidecar.logging.level') }}"
"ufs-extensions.ulogger.ose.istio.ott.logging.level": error
Параметры интеграции с компонентом Объединенный мониторинг Unimon (MONA) продукта Platform V Monitor (OPM)#
В части сбора и хранения данных о производительности, доступности и работоспособности компонент MONA может быть интегрирован с компонентом Объединенный мониторинг Unimon (MONA).
MONA обеспечивает сбор прикладных, инфраструктурных метрик и метрик биллинга по стандарту мониторинга Prometheus. В процессе сбора MONA обогащает метрики дополнительными служебными данными и сохраняет их в свое хранилище.
Параметры интеграции с MONA устанавливаются путем определения их значений в файле \conf\config\parameters\ddis.all.conf дистрибутива конфигурации развертывания компонента DDIS:
Файл дистрибутива |
Параметр дистрибутива |
Описание |
|---|---|---|
ddis.all.conf |
ufs-monitoring.micrometer.endpoint.enabled |
Включение/отключение отправки метрик в буфер для предоставления их для вычитки клиентскими приложениями MONA либо для дальнейшей их публикации в Prometheus средствами компонента, рекомендованное значение — , значение переменной устанавливается в файле репозитория Сommon; |
ufs-monitoring.clear.micrometer.buf.enabled |
Включение/отключение обнуления значений метрик после их сбора клиентскими приложениями MONA, рекомендованное значение — , значение переменной устанавливается в файле репозитория Сommon |
|
ufs-monitoring.micrometer.push.enabled |
Включение/отключение публикации метрик в Prometheus методом PUSH, рекомендованное значение — false |
|
ufs-monitoring.metrics.micrometer.publish.idle |
Включение/отключение отправки событий мониторинга в micrometer (при значении true отправки не будет), рекомендованное значение — false |
При определении параметров интеграции с MONA используются переменные, значения которых устанавливаются в файлах репозитория Сommon:
Переменная репозитория Сommon |
Параметр дистрибутива |
Описание |
|---|---|---|
global.platform.monm.micrometer.endpoint.enabled |
ufs-monitoring.micrometer.endpoint.enabled |
Включение/отключение отправки метрик в буфер для предоставления их для вычитки клиентскими приложениями MONA либо для дальнейшей их публикации в Prometheus средствами компонента, рекомендованное значение — true, значение указывается в _global.resources.conf |
global.platform.monm.micrometer.clear.buf.enabled |
ufs-monitoring.clear.micrometer.buf.enabled |
Включение/отключение обнуления значений метрик после их сбора клиентскими приложениями MONA, рекомендованное значение — true, значение указывается в _global.resources.conf |
Передача метрик биллинга реализуется средствами компонента DDIS путем выставления HTTP запросов, которые предоставляют метрики биллинга в формате Prometheus, что позволяет настроить их сбор средствами клиентских приложений MONA.
Порты для доступа к интерфейсам для сбора метрик устанавливаются в файлах \conf\k8s\base\ddis-*\deploy.yaml (для среды контейнеризации K8S) дистрибутива конфигурации развертывания компонента DDIS.
Сбор метрик и публикацию их в хранилище обеспечивают клиентские приложения MONA:
Unimon-agent — для сбора метрик;
Unimon-sender — для отправки метрик в хранилище, которые рекомендуется размещать в пространстве имен (namespace) каждого из интегрированных с MONA компонентов.
При отправке метрик в хранилище клиентские приложения MONA используют topic (Kafka). Рекомендованная стандартная частота сбора метрик клиентским приложением мониторинга — 15 секунд (задается в клиентском приложении MONA).
Клиентские приложения MONA не входят в поставку компонента DDIS. Добавление файлов настроек и манифестов, необходимых для развертывания в пространстве имен (namespace) DDIS pods с клиентскими приложениями MONA обеспечивает расширение (extension), описанное в файле pipeline.yml дистрибутива конфигурации развертывания DDIS:
- name: injectUnimon
branch: refs/tags/1.14.26
arguments:
fpName: 'ddis'
componentCode: 'ddis'
injectAppScrapSvc: false
overrideParameters:
fluent-bit.prometheus.io.port: 8083
kafka:
loga:
internalHost: "ddis-loga-egress-kafka-svc-{{distrib.release.version}}"
internalPort: "19093"
monsys:
internalHost: "ddis-monsys-egress-kafka-svc-{{distrib.release.version}}"
internalPort: "19095"
services:
- deployment: istio/deployments/egress
service: ott-sidecar
labels:
app: '{{ lookup("custom_vars", "agent.ose.istio.all.common.egressAppSelector") }}'
istio: '{{ lookup("custom_vars", "agent.ose.istio.all.common.egressIstioSelector") }}'
path: /monitoring/prometheus
port: '{{ lookup("custom_vars", "ddis.istio.deployment.spec.template.spec.containers.ott.readinessProbe.port", default="") }}'
- deployment: istio/deployments/ingress
service: ott-sidecar
labels:
app: '{{ lookup("custom_vars", "agent.ose.istio.all.common.ingressAppSelector") }}'
istio: '{{ lookup("custom_vars", "agent.ose.istio.all.common.ingressIstioSelector") }}'
path: /monitoring/prometheus
port: '{{ lookup("custom_vars", "ddis.istio.deployment.spec.template.spec.containers.ott.readinessProbe.port", default="") }}'
Параметры интеграции с компонентом Аудит (AUDT) продукта Platform V Audit SE (AUD)#
В части сбора и хранения событий информационной безопасности компонент DDIS может быть интегрирован с компонентом Аудит (AUDT) продукта Platform V Audit SE (AUD).
AUDT обеспечивает сбор и долгосрочное хранение событий информационной безопасности с доступом к их просмотру.
Параметры интеграции с AUDT устанавливаются в файлах дистрибутива конфигурации развертывания компонента DDIS:
настройки, общие для всех прикладных приложений компонента DDIS, задаются в файле
\conf\config\parameters\ddis.all.conf;настройки каждого из прикладных приложений DDIS задаются в файлах
\conf\config\parameters\ddis.gate-tfs.all.conf,\conf\config\parameters\ddis.controller.all.conf;настройки AUDT задаются в файлах
\conf\k8s\base\data-dictionary-*\configmaps\cm-ddis-km-audm.yaml.
Параметры интеграции с AUDT:
Файл дистрибутива |
Параметр дистрибутива |
Описание |
|---|---|---|
ddis.all.conf |
ufs-audit-client-useQuota |
Использование квотирования запросов, рекомендованное значение — false |
union-audit.circuit-breaker.mode |
Режим работы главного балансировщика запросов, рекомендованное значение — |
|
audit.ufs.client_module.context.error_total_size_threshold |
Параметры для настройки квотирования — пороговое значение для общего размера сообщений уровня WARN в TPS, рекомендованное значение — 0 |
|
audit.ufs.client_module.context.error_count_threshold |
Параметры для настройки квотирования — пороговое значение для количества сообщений уровня ERROR в TPS, рекомендованное значение — 0 |
|
audit.ufs.client_module.context.warn_count_threshold |
Параметры для настройки квотирования — пороговое значение для количества сообщений уровня WARN в TPS, рекомендованное значение — 0 |
|
audit.ufs.client_module.context.warn_total_size_threshold |
Параметры для настройки квотирования — пороговое значение для общего размера сообщений уровня WARN в TPS, рекомендованное значение — 0 |
|
audit.ufs.client_module.context.quota_escalation_period |
Параметры для настройки квотирования — время эскалации с уровня WARN до уровня ERROR в секундах, рекомендованное значение — 0 |
|
audit.ufs.client_module.context.max_async_send_tasks |
Параметр, задающий максимальное количество асинхронно выполняемых задач отправки событий аудита, которое может одновременно существовать в приложении при отправке событий, рекомендованное значение — 1000 |
|
ddis.ufs.platform.environment.request.sudirIpHeader |
Параметр названия Header, из которого добывается значение IP-адреса, рекомендованное значение — iv-remote-address |
|
ddis.gate-tfs.all.conf |
ddis.gateway.union-audit.sourceSystem |
Код АС, в состав которой интегрируется компонент, рекомендуемое значение — |
ddis.gateway.union-audit.CImodule |
Идентификатор компонента ddis-gate-tfs , рекомендуемое значение — _ddis-gate-tfs |
|
ddis.controller.all.conf |
ddis.controller.union-audit.sourceSystem |
Код АС, в состав которой интегрируется компонент, рекомендуемое значение — |
ddis.controller.union-audit.CImodule |
Идентификатор компонента ddis-controller, рекомендуемое значение — _ddis-controller |
|
ddis.facade.all.conf |
ddis.facade.union-audit.sourceSystem |
Код АС, в состав которой интегрируется компонент, рекомендуемое значение — |
ddis.facade.union-audit.CImodule |
Идентификатор компонента ddis-facade, рекомендуемое значение — _ddis-facade |
|
ddis-sidecar-ott.all.conf |
ott-sidecar-ufs.union-audit.sourceSystem |
Код АС, в состав которой интегрируется компонент, рекомендуемое значение — |
ott-sidecar-ufs.union-audit.CImodule |
Идентификатор компонента ott-sidecar-ufs, рекомендуемое значение — _ott-sidecar-ufs |
При определении параметров интеграции с AUDT используются переменные, значения которых устанавливаются в файлах репозитория Сommon:
Переменная репозитория Сommon |
Параметр дистрибутива |
Описание |
|---|---|---|
global.platform.union_audit.circuit_breaker.mode |
union-audit.circuit-breaker.mode |
Режим работы главного балансировщика запросов, возможные значения: DUP — отправка осуществляется во все группы балансировки, сообщения дублируются, STD — отправка осуществляется в главную группу балансировки, которая устанавливается параметром union-audit.balance_group.<условное обозначение группы балансировки>.main = true; рекомендованное значение — DUP, значение указывается в _global.kafka.conf |
Добавление файлов настроек и манифестов, необходимых для подключения к topic (Kafka) обеспечивает расширение (extension) injectAuditKafka, описанное в файле pipeline.yml дистрибутива конфигурации развертывания DDIS:
- name: injectAuditKafka
branch: refs/tags/1.14.26
arguments:
fpName: 'ddis'
componentCode: 'ddis'
manifestPostfix: "union-audit"
startPort: "19193"
clientCertificate: "{{ lookup('custom_vars', 'ddis.istio.egress.certificates.path.tls.crt') }}"
privateKey: "{{ lookup('custom_vars', 'ddis.istio.egress.certificates.path.tls.key') }}"
caCertificates: "{{ lookup('custom_vars', 'ddis.istio.egress.certificates.path.root.crt') }}"
Параметры интеграции с компонентом IAM Proxy (AUTH) продукта Platform V IAM SE (IAM)#
При организации информационного обмена с компонентом AUTH на стороне AUTH должен быть настроен маршрут проксирования запросов (junction) к АРМ Администратора компонента DDIS. Пример конфигурации:
- junctionName: "DDIS (Сервис Интеграции Данных Справочников)" -- заголовок маршрута проксирования, описание проксируемого компонента для отображения ссылки
junctionPoint: /ddis -- корневой каталог пути после хоста, который разделяет различные маршруты в URL
serverAddresses: [ "хост:порт" ] -- адрес сервера, на который будет происходить проксирование
applyJctRequestFilter: "common/rds-set-header-host-to-backend.location.conf" -- фильтр, который будет применяться ко всем запросам к компоненту:
-- переопределение заголовка host в сторону backend с указанием первого сервера из Pool балансировки
-- (необходимо использовать при проксировании в сторону Kubernetes/Platform V DropApp)
https: true -- использование HTTPS/SSL
indexUrl: /ddis -- адрес главной страницы проксируемого компонента, URL относительно корневого каталога пути после хоста, по которому будет осуществляться вход в АРМ
sslCommonName: '*' -- шаблон имени из CN сертификата сервера, значение должно быть указано в SAN сертификата шлюза Ingress
transparent: false -- прозрачность URL, если параметр установлен в true, то при проксировании запросы будут проходить без изменения URL
Параметры интеграции с AUTH устанавливаются путем определения их значений в файлах дистрибутива конфигурации развертывания компонента DDIS:
настройки интеграции c AUTH задаются в файле
\conf\config\parameters\ddis.facade.all.conf;начальные настройки AUTH задаются в файле
\conf\k8s\base\data-dictionary-manage\ddis-facade\cm-ddis-facade-pacman-conf.yaml;
Параметры интеграции с AUTH:
Файл дистрибутива |
Параметр дистрибутива |
Описание |
|---|---|---|
ddis.facade.all.conf |
ddis.facade.env.auth.providers.configuration.profile |
Профиль, используемый при аутентификации пользователей, рекомендованное значение в зависимости от конфигурации развертывания DDIS: #FS — AUTH_IAM (фильтр аутентификации IamTokenAuthenticatorProvider) |
ddis.facade.env.iam.auth.publickey.locations |
Путь к открытому ключу провайдера аутентификации, рекомендованное значение — global.platform.iam.auth.publickey.locations, значения переменных устанавливаются в файлах репозитория Сommon |
|
ddis.facade.env.iam.auth.roles.path |
Пути, где будут находиться роли пользователя, рекомендованное значение — global.platform.iam.auth.roles.path, значения переменных устанавливаются в файлах репозитория Сommon |
|
ddis.facade.env.iam.auth.audience |
Token Audience. Если значение пустое, валидация по Audience не выполняется, рекомендованное значение — global.platform.iam.auth.audience, значения переменных устанавливаются в файлах репозитория Сommon |
Параметры интеграции с компонентом Объединенный сервис авторизации (ОСА) (AUTZ) продукта Platform V IAM SE (IAM)#
Параметры интеграции с AUTZ устанавливаются путем определения их значений в файлах дистрибутива конфигурации развертывания компонента DDIS:
настройки интеграции c AUTZ задаются в файле
\conf\config\parameters\dictionary.all.conf;начальные настройки AUTZ задаются в файле
\conf\k8s\base\data-dictionary-manage\configmaps\data-dictionary-manage-config-cm.yaml;целевые настройки AUTZ задаются в файле
\conf\data\sup2\definitions\data-dictionary-manage.json(в общем случае целевые значения настроек совпадают с начальными).
Параметры интеграции с AUTZ:
Файл дистрибутива |
Параметр дистрибутива |
Описание |
|---|---|---|
ddis.facade.all.conf |
ddis.facade.env.auth_enabled |
Признак включения авторизации |
ddis.facade.env.ufs.baseurl.authorization |
Путь к сервису авторизации AUTZ, рекомендованное значение — |
|
ddis.platform.iam.logout.url |
Путь перенаправления при нажатии кнопки выхода, рекомендованное значение — |
При определении параметров интеграции с AUTZ используются переменные, значения которых устанавливаются в файлах репозитория Сommon:
Переменная репозитория Сommon |
Параметр дистрибутива |
Описание |
|---|---|---|
global.ose.platform.ufs.baseurl.security |
ufs.baseUrl.AUTHORIZATION |
Путь до сервиса авторизации AUTZ в среде контейнеризации, значение указывается в _global.resources.conf |
Модель авторизации АРМ Администратора компонента DDIS содержится в файле \conf\data\security\ddis-security-data.xml и справочник компонента OCA по пути \conf\data\security_dictionaries\dictionariesTask.xml дистрибутива конфигурации развертывания.
Файлы из каталога \conf\data\security\ и \conf\data\security_dictionaries\ предназначены для импорта в AUTZ средствами Deploy tools (CDJE). Импорт выполняется при запуске сценария (playbook) IMPORT_SECURITY_PARAMS (входит в состав сценария IMPORT_ALL_PARAMS).
Параметры интеграции с компонентом Управление политиками (POLM) продукта Platform V Synapse Service Mesh (SSM)#
Компонент Управление политиками (POLM) продукта Platform V Synapse Service Mesh (SSM) предназначен для автоматизированной рассылки конфигураций политик управления трафиком, политик безопасности и прочих управляющих команд для компонентов IGEG и SVPX.
Параметры интеграции с POLM устанавливаются путем определения их значений в файле \conf\config\parameters\ddis.istio.all.conf дистрибутива конфигурации развертывания компонента DDIS:
Файл дистрибутива |
Параметр дистрибутива |
Описание |
|---|---|---|
ddis.istio.all.conf |
ddis.istio.istio-control-plane-project |
Наименования проекта Control plane, рекомендованное значение — |
ddis.istio.istiod_service |
Адрес сервиса istiod Сontrol-plane, рекомендованное значение — |
При определении параметров интеграции с POLM используются переменные, значения которых устанавливаются в файлах репозитория Сommon:
Переменная репозитория Сommon |
Параметр дистрибутива |
Описание |
|---|---|---|
openshiftControlPlaneProject |
ddis.istio.istio-control-plane-project |
Наименования проекта Control plane, значение указывается в multiClusters.json |
openshiftControlPlaneIstiodService |
ddis.istio.istiod_service |
Адрес сервиса istiod Сontrol-plane, значение указывается в multiClusters.json |
Параметры интеграции с компонентом Corax (KFKA) продукта Platform V Corax (KFK)#
Для настройки взаимодействия c KFKA через Egress необходимо дополнить список параметров в переменные:
ddis.ose.istio.egress.tfs.kafka.ssl.enabled=true — создает DestinationRule, которые использует сертификаты с Egress; ddis.ose.istio.egress.tfs.kafka.servers=kafka_host:ip_address:kafka_port:TCP:kafka_port_egress:TCP;kafka_host:ip_address:kafka_port:TCP:kafka_port_egress:TCP.
Расшифровка собирательных значений:
kafka_host — хост Node брокера KFKA Corax;
ip_address — IP Node брокера KFKA Corax;
kafka_port — внешний порт Node брокера KFKA Corax;
TCP — внешний протокол Node брокера KFKA Corax;
kafka_port_egress — внутренний порт Egress;
TCP — внутренний протокол Egress.
Перечень сторонних компонентов, интеграция с которыми необходима для успешного функционирования компонента DDIS, приведен в разделе Платформенные зависимости. О недоступности любого из перечисленных компонентов во время установки компонента DDIS будет сообщено в результатах работы CI/CD по установке компонента DDIS.
Для импорта списка поставщиков/провайдеров в сервис ddis-gate-tfs необходимо заполнить параметры в файле ddis.gate-tfs.all.conf:
ddis.gate-tfs.cm.resource.bootstrapConfig= список брокеров для инициализации подключения к KFKA (интеграционная);
ddis.gate-tfs.cm.resource.noticeTopic= название топика уведомлений;
ddis.gate-tfs.cm.resource.receiptTopic= название топика квитанций.
Параметры интеграции с облачным хранилищем по протоколу S3#
Для настройки взаимодействия через egress необходимо дополнить список параметров в переменные:
ddis.istio.egress.all.s3.servers=<s3_host>:<s3_port>[:<3_internal_port_x>];…, где:
s3_host_x — хост облачного хранилища (локального или интеграционного);
s3_external_port_x — внешний порт облачного хранилища (локального или интеграционного);
s3_internal_port_x — внутренний порт облачного хранилища (локального или интеграционного), рекомендуемое значение «8556».
Предупреждение
Важно!
Для корректных выполнения запросов в хранилище по протоколу S3, перед установкой необходимо проверить порты в маршрутах SSM (внутренний порт в параметре ddis.istio.egress.all.s3.servers) с параметрами:
внутренний порт локального хранилища должен совпадать со значением в параметре ddis.settings.s3.internal.port=8556;
внутренний порт интеграционного хранилища должен совпадать со значением в параметре ddis.gate-tfs.in.internal.port=8556.
Информация вноситься как по локальному и интеграционному хранилищу через ; если данные отличаются.
Для взаимодействия сервисов DDIS с облачным хранилищем необходимо указать корректно параметры в файле ddis.all.conf:
ddis.settings.s3.url=http://хост — базовый URL до локального облачного хранилища по HTTP;
ddis.settings.s3.bucket.name — название бакета в локальном облачном хранилище;
ddis.settings.s3.signing.region — регион в облачном хранилище S3;
ddis.settings.s3.local.connectionTimeout=10000 — timeout соединения с хранилищем файлов S3 в миллисекундах;
ddis.settings.s3.local.maxConnections=50 — максимальное количество открытых HTTP-соединений S3 клиента с хранилищем;
ddis.settings.s3.local.keepAlive=false — HTTP заголовок keep-alive, удерживать ли соединение S3 клиента с хранилищем открытым;
ddis.settings.s3.local.connectionMaxIdleMillis=60000 — максимальное время (в миллисекундах) простоя соединения S3 клиента с хранилищем в пуле;
ddis.settings.s3.local.socketTimeout=50000 — время ожидания (в миллисекундах) передачи данных по соединению S3 клиента с хранилищем.
Также в файле /data/sup2/parameters/ddis-gate-tfs.conf необходимо указать параметры (используются через playbook IMPORT_SUP2_PARAMS):
ddis.gate-tfs.in.bucketName — название бакета во внешнем облачном хранилище;
ddis.settings.s3.bucket.name — название бакета в локальном облачном хранилище;
ddis.gate-tfs.in.connectionTimeout=10000 — timeout соединения с хранилищем файлов S3 в миллисекундах;
ddis.gate-tfs.in.maxConnections=50 — максимальное количество открытых HTTP-соединений S3 клиента с хранилищем;
ddis.gate-tfs.in.keepAlive=false — HTTP заголовок keep-alive, удерживать ли соединение S3 клиента с хранилищем открытым;
ddis.gate-tfs.in.connectionMaxIdleMillis=60000 — максимальное время (в миллисекундах) простоя соединения S3 клиента с хранилищем в пуле;
ddis.gate-tfs.in.socketTimeout=50000 — время ожидания (в миллисекундах) передачи данных по соединению S3 клиента с хранилищем.
Описание настроек параметров для работы с облачным хранилищем, в котором реализована проверка целостности данных при потоковой отправке данных:
ddis.s3.chunkEncodingDisabled — параметр отключения разбиения запроса с большим объемом данных на отдельные фрагменты (включение отправки данных одним запросом), значение по умолчанию — true;
ddis.s3.payloadSigningEnabled — параметр включения подписи на данных запросов в S3, значение по умолчанию — true.
При интеграции со Scala-R настройка параметров следующая:
ddis.s3.chunkEncodingDisabled = true;ddis.s3.payloadSigningEnabled = true.
При интеграции с Ceph настройка параметров следующая:
ddis.s3.chunkEncodingDisabled = false;ddis.s3.payloadSigningEnabled = true.
По интеграционному облачному хранилищу параметры (в файле ddis.gate-tfs.all.conf) следующие:
ddis.gate-tfs.in.host =http://хост — URL до интеграционного облачного хранилища;
ddis.gate-tfs.in.bucketName — название бакета в интеграционном облачном хранилище S3;
ddis.gate-tfs.in.signing.region — регион в облачном хранилище S3.
Значения переменных должны храниться в KV-хранилище в секрете ddis.secman.kv.secret.s3-tfs с ключами ddis.files.bucket.in.connection.accessKey и ddis.files.bucket.in.connection.secretKey.
Список провайдеров и их префиксы в хранилище S3 заполняются в параметре ddis.gate-tfs.cm.resource.provider_list списком по правилу <Id Провайдера в DDIS >:<Код Провайдера в DDIS >:<наименование провайдера>:<подпапка для провайдера в бакете>:<код сценария>:<блокирован ли поставщик>;<Id Провайдера в DDIS >:<Код Провайдера в DDIS >:<наименование провайдера>:<подпапка для провайдера в бакете>:<код сценария>:<блокирован ли поставщик>. Например: ddis.gate-tfs.cm.resource.provider_list=1:ARCGIS:ArcGIS:arcgis:arcgis2:Scenario-1:false;3:UNSI:КАП.УНСИ:unsi:unsi2:Scenario-2:false;4:KAKB:КАКБ:kakb:kakb2:Scenario-3:false;5:PCKIB:Продуктовый каталог КИБ:pckib:pckib2:Scenario-4:false;7:PCAP:ПКАП:pcap:pcap2:Scenario-5:false;8:CAS:ЦАС НСИ:cas:cas:Scenario-6:false.
Режим работы стратегии связывания поступившего сообщения с поставщиком, который обрабатывает соответствующий транспортный сценарий, устанавливается параметром ddis.gateway.cm.data.application_provider_messageLinkingStrategy со значением BY_MESSAGE_SCENARIOID. Данное значение в дистрибутиве выставлено по умолчанию.
Для корректной обработки файлов со справочниками в универсальном парсере необходимо заполнить глобальную переменную ddis.transformer.env.transformer_stx_file_to_custom по правилу заполнения <code_provider1_tfs>:<template_stx_file**>;<code_provider2_tfs>:<template_stx_file**>;<code_provider3_tfs>:<template_stx_file**>, где:
code_provider1_tfs — соответствует имени поставщика в Шлюзе ТФС;
template_stx_file — шаблон для обработки в универсальном парсере, допустимые значения приведены ниже.
Значение епо умолчанию:
ddis.transformer.env.transformer_stx_file_to_custom=SAPEASUP:template-SAPEASUP.stx;ARCGIS:template-CAS.stx;DEPO:template-DEPO.stx;TELECOM:template-TELECOM.stx;UNSI:template-UNSI.stx;KAKB:template-UNSI.stx;PCKIB:template-UNSI.stx;PCAP:template-UNSI.stx;POS:template-CAS.stx;CAS:template-CAS.stx
Список шаблонов в универсальном парсере (ddis-transformer):
template-SAPEASUP.stx (описание stx-файлов преобразования template-SAPEASUP.stx);
template-CAS.stx (описание stx-файлов преобразования template-CAS.stx);
template-DEPO.stx (описание stx-файлов преобразования template-DEPO.stx);
template-TELECOM.stx (описание stx-файлов преобразования template-TELECOM.stx);
template-UNSI.stx (описание stx-файлов преобразования template-UNSI.stx).
По умолчанию универсальный парсер сконфигурирован следующим образом:
global.ddis.settings.transformer.stx_file_to_custom=SAPEASUP:template-SAPEASUP.stx;ARCGIS:template-CAS.stx;DEPO:template-DEPO.stx;TELECOM:template-TELECOM.stx;UNSI:template-UNSI.stx;KAKB:template-UNSI.stx;PCKIB:template-UNSI.stx;PCAP:template-UNSI.stx;POS:template-CAS.stx;CAS:template-CAS.stx;SFS:template-SFS.stx
Параметры интеграции с компонентом Сервис предоставления справочных данных (LNSE) продукта Platform V Dictionaries (SDT)#
Компонент Сервис предоставления справочных данных (LNSE) предназначен для обеспечения работы со справочниками из различных приложений, реализованных на Platform V. DDIS позволяет построить интеграционные сценарии загрузки справочников в LNSE.
Для настройки взаимодействия через egress необходимо дополнить список параметров в переменные (файл ddis.istio.all.conf):
ddis.istio.egress.common.lnse.host — хост от baseUrl сервиса загрузки моделей и данных справочников LNSE через IAG II; global.platform.nlb_ii.port.default — порт IAG II.
Для настройки отправки REST запросов до сервиса загрузки моделей и данных справочников компонента LNSE (файл ddis.all.conf):
ddis.settings.lnse.url — путь к сервису загрузки моделей и данных справочников LNSE. Рекомендованное значение — . Значение переменной устанавливается в файле репозитория Сommon.
Параметры интеграции с компонентом PACMAN (CFGA) продукта Platform V Frontend Std (#FS)#
Начальные настройки DDIS задаются в файле \package\conf\k8s\base\ddis-publish-lnse\cm-ddis-publish-lnse-resources.yaml (для среды контейнеризации K8S).
Файл с целевыми настройками DDIS размещается в каталоге conf\data\sup2 (в общем случае целевые значения параметров совпадают с начальными).
Файлы из каталога conf\data\sup2 предназначены для импорта в компонент CFGA средствами Deploy tools (CDJE). Импорт выполняется при запуске сценария IMPORT_SUP2_PARAMS (входит в состав сценария IMPORT_ALL_PARAMS).
Рекомендации при загрузке конфигурации DDIS#
Для заполнения конфигурации: шлюзы, процессоры, маршруты необходимо после развертывания выполнить импорт ресурсов для ddis-controller один раз. Шаги:
В PACMAN изменить значение параметра
ddis.controller.resources.enabled(установить в true).Выполнить рестарт Pod ddis-controller. в результате успешного запуска будут прогружены: шлюзы, процессоры, маршруты.
Вернуть параметру (PACMAN)
ddis.controller.resources.enabledзначениеfalse.
Для заполнения/обнволения информации о поставщиках: обновление списка необходимо после развертывания выполнить импорт ресурсов для ddis-gte-tfs. Шаги:
В PACMAN значение параметра
ddis.gate-tfs.resource.enabled(значение по умолчанию true) — «Включатель загрузки предварительно подготовленных ресурсов».В PACMAN значение параметра
ddis.gate-tfs.resource.update(значение по умолчанию true) — «Включение обновления ресурсов».При старте Pod ddis-gte-tfs подгрузит список поставщиков, указанных в переменной
ddis.gate-tfs.cm.resource.provider_list.
При добавлении поставщика:
Заполнить корректно список поставщиков через переменную
ddis.gate-tfs.cm.resource.provider_list(достаточно только необходимых поставщиков).Заполнить сопоставление формата и шаблона для преобразования в формат transreference через переменную
ddis.transformer.env.transformer_stx_file_to_custom(дополнить список).Удостовериться, что значение параметра
ddis.gate-tfs.resource.enabled=trueв PACMAN.Выполнить переустановку DDIS.
Для включения/выключения функционала очистки облачного хранилища:
При установке дистриубтива значение параметра
ddis.gateway.ddis.files.enabledвыставить необходимое значение (по умолчанию значениеtrue— функциональность очистки включена).В PACMAN установить необходимые параметры:
ddis.files.bucket.in.clean.name «Очистка хранилищ. Имя папки внешнего хранилища»;
ddis.files.bucket.in.clean.ttl «Очистка хранилищ. Время жизни файла (в минутах)»;
ddis.files.bucket.in.clean.time «Очистка хранилищ. Крон выражение для запуска job очистки внешнего хранилища»;
ddis.files.bucket.in.clean.exclude «Очистка хранилищ. Регулярное выражение для файлов исключений»;
ddis.files.bucket.in.clean.enabled «Очистка хранилищ. Параметр для включения очистки внешнего хранилища»;
ddis.files.bucket.in.clean.maxcount «Очистка хранилищ. Максимальное количество файлов, удаляемых за одну итерацию»;
ddis.files.bucket.local.clean.name «Очистка хранилищ. Имя папки внутреннего хранилища»;
ddis.files.bucket.local.clean.ttl «Очистка хранилищ. Время жизни файла (в минутах)»;
ddis.files.bucket.local.clean.time «Очистка хранилищ. Крон выражение для запуска job очистки внутреннего хранилища»;
ddis.files.bucket.local.clean.exclude «Очистка хранилищ. Регулярное выражение для файлов исключений»;
ddis.files.bucket.local.clean.maxcount «Очистка хранилищ. Максимальное количество файлов, удаляемых за одну итерацию»;
ddis.files.bucket.local.clean.enabled «Очистка хранилищ. Параметр для включения очистки внутреннего хранилища».
Обновление#
Приложения компонента DDIS являются неверсионируемыми, одновременная работа нескольких версий этих приложений не предполагается. Чтобы избежать ошибок, перед установкой необходимо остановить и удалить неверсионируемые приложения предыдущего релиза. Удалять таблицы БД не требуется. Остановка и удаление неверсионируемых приложений выполняется средствами компонента Deploy tools (CDJE) в процессе установки компонента DDIS.
Скорректировать значение параметра согласно шаблону:
ddis.istio.egress.all.s3.servers=<s3_host>:<s3_port>[:<3_internal_port_x>];…, где:
s3_host_x — хост облачного хранилища (локального или интеграционного);
s3_external_port_x — внешний порт облачного хранилища (локального или интеграционного);
s3_internal_port_x — внутренни порт облачного хранилища (локального или интеграционного), рекомендуемое значение 8556.
Предупреждение
Важно!
Для корректного выполнения запросов в хранилище по протоколу S3 перед установкой проверить порты в маршрутах SSM (внутренний порт в параметре ddis.istio.egress.all.s3.servers) с параметрами:
внутренний порт локального хранилища должен совпадать со значением в параметре:
ddis.settings.s3.internal.port=8556;внутренний порт интеграционного хранилища должен совпадать со значением в параметре:
ddis.gate-tfs.in.internal.port=8556.
Предупреждение
Важно!
Значение параметра ddis.dictionary.cron.watcher.start должно быть изменено на «0 0/3 * * * ?».
Изменить значение параметра можно вручную в UI PACMAN или путем удаления параметра ddis.dictionary.cron.watcher.start перед установкой дистрибутива.
Для обновления компонента DDIS на текущую версию необходимо выполнить его установку в соответствии с разделом Установка настоящего Руководства по установке. Специальной процедуры обновления компонента не предусмотрено.
Перед обновлением рекомендуется сделать резервную копию БД.
Удаление#
Для удаления компонента DDIS необходимо удалить:
все ресурсы компонента DDIS в K8S (выбранных сервисов при установке): ConfigMaps, Deployments, Services, Ingress;
ресурсы продукта Platform V Synapse Service Mesh (SSM): deployment, Service, Ingress, ServiceEntry, Gateway, VirtualService, DestinationRules (при установке использовались из дистрибутива);
настройки с группы серверов NGINX.
базы данных.
Для удаления ресурса подключитесь к Kubernetes/Platform V DropApp через терминал и выполните команду:
kubectl -n <имя namespace> delete <тип компонента Kubernetes/Platform V DropApp> <имя компонента Kubernetes/Platform V DropApp)>
Для удаления схемы базы данных откройте клиент для работы с БД, подключитесь к серверу БД и выполните команду:
DROP SCHEMA <имя схемы> CASCADE;
Проверка работоспособности#
Для проверки корректности установки:
При установке с помощью DeployTools задание в Jenkins должно завершиться без ошибок. При наличии ошибки нужно смотреть лог и выявлять проблему.
Необходимо убедиться, что в консоли среды контейнеризации в разделе Workloads — Pods все Pods:
все приложения находятся в статусе Running;
нет pod в статусе Error;
в колонке Ready все контейнеры работают: 2/2, 3/3 и т.д.;
в колонке Created должны появиться pod с текущей датой установки.
Если Pod содержит ошибку вида CrashLoppBackOff или другую, горящую красным, нужно перейти в логи этого Pod и посмотреть причину ошибки.
Это может быть, например, некорректная ссылка на Docker-образ image, ошибка jdbc-соединения, некорректная модель БД, отсутствие параметра конфигурации, ошибка соединения с AUTZ и т.д. Если Pod нет вовсе, нужно убедиться, что создана конфигурация развертывания (Workloads — Deployments), и в его настройках нажать кнопку Start Rollout.
Затем перейти в раздел Pods и следить за появлением Pods имя модуля, при появлении ошибки перейти в лог в течение минуты (далее Pod самоудаляется) и, скопировав сообщение из лога, проанализировать ошибку.
Если Pods работают, нужно посмотреть логи pod соответствующего компонента на наличие сообщений об ошибках.
Успехом развертывания является то, что все сервисы запущены (поднялись все pods). В случае, если не хватает какой-либо смежной системы, pods начнут писать внутри себя логи, либо перезагружаться, указывая на ошибку. Если такого поведения в процессе не наблюдается, то установка выполнена успешно.
Проверить логи наката скриптов миграции LiquiBase. В результате наката скриптов на каждую БД лог закачивается сообщением: Liquibase: Update has been successful.
В том числе для проверки работоспособности web-интерфейса продукта:
успешно войти в АРМ продукта под пользователем, которому назначена определенная роль.
перейти по всем разделам сайдбара продукта и убедиться, что при переходе отсутствуют ошибки. Результат — открываются формы в рамках роли.
Для проверки работоспособности компонента MONA следует обратиться к документации на данный компонент.
Чек-лист проверки работоспособности интеграций#
Компонент AUDT
В лог-файлах есть сообщение об успешной отправке метамодели и событий аудита.
Компонент KFKA
В лог-файлах сервиса ddis-gate-tfs отсутствуют ошибки при прочтении сообщений в KFKA. Сервис ddis-gate-tfs обращается к KFKA каждые 5 секунд. Пример ошибок, которых быть не должно:
2001-01-01 01:01:01,305 [Thread-1-C-1] [WARN] (org.apache.kafka.clients.NetworkClient) [org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater::handleServerDisconnect:1063] mdc:()| [Consumer clientId=consumer-distribution-gateway-1, groupId=distribution-gateway] Bootstrap broker 00.00.000.000:0000 (id: -1 rack: null) disconnected
2001-01-01 01:01:01,407 [Thread-1-C-1] [INFO] (org.apache.kafka.clients.NetworkClient) [org.apache.kafka.clients.NetworkClient::handleDisconnections:935] mdc:()| [Consumer clientId=consumer-distribution-gateway-1, groupId=distribution-gateway] Node -1 disconnected
Компоненты LOGA
В лог-файлах контейнера ulogger-sidecar отсутствуют ошибки при подключении к topic компонента LOGA.
[error] [output:kafka:kafka.0] fluent-bit#producer-1: [thrd:app]: fluent-bit#producer-1: host1:0/bootstrap: Failed to resolve 'host1:0': Name or service not known (after 13ms in state CONNECT)
[error] [output:kafka:kafka.0] fluent-bit#producer-1: [thrd:app]: fluent-bit#producer-1: host2:0/bootstrap: Failed to resolve 'host2:0': Name or service not known (after 2ms in state CONNECT, 1 identical error(s) suppressed)
Компонент LNSE
В лог-файлах сервиса ddis-publish-lnse отсутствуют ошибки при выполнении запросов на endpoint к компоненту. Проверить логи Egress на наличии статуса 200 при отправке.
"GET /data-dictionary-load/v8/rn/DEFAULT_TENANT/dictionary/test9417?requestId=00000000-0000-0000-0000-000000000000 HTTP/1.1" 200 - "-" "-" 0 17830 34 22 "-" "Java-SDK" "00000000-0000-0000-0000-000000000000"
"GET /data-dictionary-load/v8/rn/DEFAULT_TENANT/dictionary/test9417/structures?requestId=00000000-0000-0000-0000-000000000000 HTTP/1.1" 200 - "-" "-" 0 17829 17 17 "-" "Java-SDK" "00000000-0000-0000-0000-000000000000"
Проверить лог-файлы Egress на наличии статуса 200 при отправке.
[2001-01-01T08:39:05.805Z] "POST /mdc-api/distribution HTTP/1.1" 200 - "-" "-" 1182 1314 615 554 "000.000.000.0" "Java/11.0.4" "00000000-0000-0000-0000-000000000000" "nsix.apps.stands-vdc01.solution.domain" "00.00.0.00:000" outbound|443||nsix.apps.stands-vdc01.solution.domain 000.000.000.000:00000 000.000.000.000:0000 000.000.000.0:00000 - -
Компоненты AUTH, AUTZ
Рекомендуется:
ввести в адресной строке браузера URL АРМ компонента IAM Proxy (AUTH) продукта Platform V IAM SE (IAM);
указать идентификационную и аутентификационную информацию пользователя с ролью Администратора и подтвердить вход;
средствами AUTH перейти в UI DDIS;
средствами UI DDIS проверить доступную роль пользователя и отобразить соответствующую экранную форму.
Если в браузере отобразилась экранная форма UI DDIS со списком распространений, то проверка выполнена успешно.
Компонент MONA
Метрики DDIS появляются в сервисе мониторинга.
Компонент PSQL
В случае недоступности БД запуск новых экземпляров приложений компонента DDIS невозможен. Если pods компонента DDIS запустились (находятся в статусе Running), то проверка выполнена успешно. О недоступности данного компонента будет сообщено в результатах работы CI/CD во время установки компонента DDIS.
Компонент CDJE
Интеграция с CDJE не проверяется.
Компонент IAGW
Проверкой работоспособности интеграции с IAGW является доступность АРМ. В случае ошибок интеграции с IAGW АРМ не будет доступен.
SecMan
Если в качестве инструмента доставки секретов в среду функционирования компонента DDIS выбран SecMan, то в случае недоступности SecMan запуск новых экземпляров приложений компонента DDIS невозможен. Если pods компонента DDIS запустились (находятся в статусе Running), то проверка работоспособности интеграции с SecMan выполнена успешно.
Компонент SMGX
Проверка работоспособности интеграции с SMGX включает следующие действия: * ввести в адресной строке браузера URL АРМ компонента SMGX; * указать идентификационную и аутентификационную информацию пользователя с ролью системного администратора АРМ DDIS и подтвердить вход; * средствами АРМ SMGX перейти в АРМ DDIS.
Если в браузере отобразилась экранная форма АРМ DDIS, то проверка выполнена успешно.
Хранилище S3
Интеграция с S3 не проверяется.
Компонент CFGA
Посмотреть в логах cidecar istio-proxy в каждом pod с сервисом наличие строк с /paramsv2/5.0/configuration.
codeName 2025-03-20T15:53:19.417Z] "POST /paramsv2/5.0/configuration/get HTTP/1.1" 200 - via_upstream - "-" 95 187 33 33 "-" "okhttp/4.9.3" "4e805778-7dfa-95a1-9f47-1fa07555dbe4" "<host swg config>:7070" "<IP pod>:7070" outbound|7070||ddis-svc-egress-unver.<namespace>.svc.cluster.local ...- -
При успешном выполнении в строке содержится код 200.
Компоненты POLM, IGEG и SVPX
Убедитесь, что pod ddis-ingress и ddis-egress находятся в статусе Running:
kubectl get pod <имя pod> --namespace=<имя пространства имен>Если pod запущены, проверьте их лог-сообщения на наличие ошибок:
kubectl logs -f <имя pod> --namespace=<имя пространства имен>
Если pod запущены и не содержат ошибок, то проверка выполнена успешно.
Компонент OTTS
При ошибках интеграции с OTTS сервис не запустится.
Если сервис запущен и pod находятся в статусе Running, проверка интеграции считается автоматически пройденной.
Откат#
При установке дистрибутива компонента DDIS необходимо вручную в административном интерфейсе компонента PACMAN (CFGA) удалить параметры, значения которых были изменены.
При установке дистрибутива компонента DDIS предыдущей версии все отсутствующие параметры, необходимые для работы приложения, будут установлены из дистрибутива компонента DDIS новой версии.
Для отката версии компонента DDIS необходимо установить его предыдущую версию в соответствии c поставляемой инструкцией по установке (документ «Руководство по установке»).
Откат БД#
При откате на предыдущую версию рекомендуется сделать резервную копию БД.
Отдельной процедуры отката БД не предусмотрено. Откат версии БД выполняется в процессе отката к предыдущей версии DDIS.
Обратная совместимость#
В компоненте DDIS предусмотрена обратная совместимость только с предыдущей версией. Откат на более ранние версии не предусмотрен.
Обратная совместимость API гарантирована только для предыдущей версии компонента DDIS.
При откате необходимо убедиться, что Платформенные компоненты, интеграция с которыми обязательна, также поддерживают обратную совместимость с предыдущей версией DDIS. Обеспечение обратной совместимости в этом случае является ответственностью платформенных компонентов. В случае, если обратная совместимость на стороне компонентов, интеграция с которыми обязательна, не поддерживается, необходимо также выполнить откат этих компонентов на предыдущую версию согласно их эксплуатационной документации.
Часто встречающиеся проблемы и пути их устранения#
В данном разделе должны быть собраны наиболее частые проблемы и описаны пути их устранения.
Ошибка монтирования сертификата в событиях Pod. Данная ошибка возникает при отсутствии или некорректно созданном секрете для сертификата, для устранения необходимо исправить или пересоздать секрет сертификата.
Ошибка выгрузки образа из registry. Данная ошибка возникает при отсутствии или некорректном секрете для выгрузки образа из registry, для устранения необходимо исправить или пересоздать секрет для выгрузки образа.
Ошибка исчерпания ресурсов пространства имен. Данная ошибка возникает при отсутствии необходимого количества ресурсов для развертывания сервиса, для устранения необходимо удалить лишние сущности из пространства имен, либо расширить квоты.
Ошибка отправки логов в компонент MONA. Данная ошибка возникает при отсутствии, либо некорректном содержимом объектов DestinationRule, ServiceEntry, VirtualService с именем egressgateway-*, для устранения необходимо исправить или пересоздать эти объекты.
Ошибка подключения к API. Данная ошибка возникает при отсутствии ServiceEntry egressgateway-*, для устранения необходимо создать ServiceEntry.
Ошибки при накате скриптов в БД:
Ошибка |
Причина |
Решение |
|---|---|---|
|
Не верно указан пользователь и его пароль для подключения к БД |
Проверить корректность пользователя и его пароля в строке запуска LiquiBase. |
Сообщение в логе запуска LiquiBase обновления схемы: |
Содержимое примененного ранее changeset было изменено. Это может быть сделано намеренно — например, при исправлении ошибок в changeset. Но может сигнализировать о реальной ошибке — например, когда LiquiBase запущен с другими параметрами. Например, имена tablespace или ролей — раньше запускали с Dtablespace_t=rspit_t, а запустили с Dtablespace_t=USERS |
1. Убедиться в том, что LiquiBase запущен с теми же параметрами. Поправить параметры и перезапустить. Чаще всего, это tablespace. Смотрим, какие в БД tablespace |
Сообщение в логе запуска LiquiBase обновления схемы: |
Роль datamart_appl не существует. Например, была удалена |
Проверить наличие роли. Если ее нет — создать. Скрипт создания роли включен в changelog liquibase. Нужно удалить запись таблицы databasechangelog, которая соответствует changeset создания роли: |
Сообщение в логе запуска LiquiBase обновления схемы: |
Изменения в схему были внесены без использования LiquiBase. В результате LiquiBase наталкивается на уже существующие столбцы, таблицы и индексы |
1. Если есть возможность — пересоздать схему с нуля: удалить схему, создать новую и накатить обновление через LiquiBase. |
Сообщение в логе запуска LiquiBase обновления схемы: |
Liquibase при запуске пишет в таблицу databasechangeloglock: пользователя, время блокировки и статус блокировки = 1. После завершения работы сбрасывает. Данные таблицы с блокировкой: ID: 1; LOCKED: 1; LOCKGRANTED: 29.04.19 14:04:10,567000000; LOCKEDBY: OAIT-211 (00.000.00.00). Данные таблицы без блокировки: ID: 1; LOCKED: 0. Если убить процесс, то в таблице databasechangeloglock остается запись и при повторном старте скрипта считается, что другой скрипт уже запущен |
Вариант 1: Использовать команду releaseLocks. Запустить LiquiBase, указав команду releaseLocks вместо команды update. |
Чек-лист валидации установки#
После установки необходимо проверить результат выполнения следующих сценариев (playbooks):
MIGRATION_FP_CONF— проверить, что в репозиторий с настройками компонента DDIS в среде функционирования мигрировали конфигурационные файлы дистрибутива компонента DDIS;DB_UPDATE— проверить, что создались и заполнились таблицы в БД на основании скриптов из папкиpackage/dbдистрибутива DDIS;OPENSHIFT_DEPLOY— проверить, в проектной области среды контейнеризации появилисьConfigMaps,VirtualService,DeploymentConfig,Service,Route,ServiceEntry,Gateway,DestinationRuleи создались pods.OPENSHIFT_INGRESS_EGRESS_DEPLOY— проверить, что появились pods ddis-ingress и ddis-egress.NGINX_DEPLOY— проверить, что применились настройкиlocations,upstreamsиroutingв соответствии с файлами конфигурацииnginx-iag-routing.json.j2,nginx-iag-services.json.j2,nginx-iag-nodes.json.j2;IMPORT_ALL_PARAMS— проверить, что в АРМ Администратора используемых компонентов Platform V создались соответствующие объекты в соответствии с файлами конфигурации из папкиpackage/conf/dataдистрибутива компонента DDIS;
Кроме того, рекомендуется выполнить проверки:
проверено наличие хранилища S3;
имеются все необходимые смежные компоненты, описанные в разделе Платформенные зависимости настоящего документа;
настроек необходимых интеграций;
отсутствие ошибок в лог-файлах;
успешный вход пользователя в UI DDIS (см. раздел Авторизация документа Руководство оператора);
наличие таблиц, индексов в базах данных и успешно выполненный накат скриптов LiquiBase (см. описание в разделе Проверка работоспособности).