Руководство по установке продукта Platform V Product Pricing#
Этот документ предназначен для администраторов продукта Platform V Product Pricing (далее Продукт), которые обеспечивают работоспособность Продукта на стороне технологической платформы Platform V.
Руководство используется в следующих случаях:
при установке или обновлении Продукта;
при обновлении фабрики-потребителя.
Термины#
Термин |
Значение |
|---|---|
Graceful Shutdown |
Штатная остановка сервиса программным способом |
Platform V |
Набор программных продуктов Platform V, предоставляющих совокупность функциональных возможностей и позволяющий обеспечить быстрое конструирование информационных систем из множества готовых компонентов |
SPAS |
Сервер приложений сервиса авторизации |
StandIn |
Режим дублирования ключевых систем (англ. Stand-In, дублирующий) |
Редакция |
Отдельный расчетный, алгоритм который, использует зафиксированный в версии набор переменных и выходных значений |
Прикладная фабрика |
Подсистема, которая выполняет обслуживание группы продуктов или автоматизацию группы функций продуктов |
Продукт |
Platform V Product Pricing |
Сокращения#
Сокращение |
Значение |
|---|---|
IP |
Адрес устройства, работающего в компьютерной сети по протоколу IP |
JSON |
JavaScript Object Notation. Формат предоставления данных |
OTT |
Platform V One-Token (OTT). Механизм выдачи одноразовых токенов |
SLA |
Соглашение о качестве и объеме предоставляемых услуг (англ. Service Level Agreement) |
SI |
StandIn — режим дублирования ключевых систем |
АС |
Автоматизированная система |
БД |
База данных |
ЕКПиТ |
Единый Каталог Продуктов и Тарифов. Сервис для централизованного управления продуктовым рядом, пакетами услуг и тарифами Компании и дочерних компаний |
НСИ |
Нормативно-справочная информация |
ПЖ |
Компонент Прикладной журнал продукта Platform V Data Tools (APLJ) |
ПСИ |
Приемо-сдаточные испытания |
ПФ |
Продуктовая фабрика |
СУБД |
Система управления базами данных |
УЦ |
Удостоверяющий центр (сертификации). Англ. Certifying Authority / CA |
ФП |
Функциональная подсистема |
ЭФ |
Экранная форма |
ЭЦП |
Электронная цифровая подпись |
Системные требования#
Продукт состоит из следующих модулей:
Конструктор Правил (pricing-ide-war). Предоставляет пользовательский интерфейс для работы с правилами тарификации (создание / редактирование / публикация).
Расчетный модуль (pricing-service-war). Производит расчет правил тарификации.
Предусловия#
Перед установкой Продукта убедитесь, что выполнены следующие условия:
Обязательной установке подлежат:
ОС Linux (рекомендован ОС «Альт 8 СП»);
сервер приложений WildFly;
имеется база данных продукта, а также пользователь и пароль к ней. Также необходим пользователь-владелец схемы, через него запускается обновление БД. Предполагается, что все действия по инициализации схемы данных пользователя были сделаны заранее;
имеется доступ на чтение к базе данных справочников (ЕКПиТ), а также пользователь и пароль к ней. Предполагается, что все действия по инициализации схемы данных пользователя были сделаны заранее, а таблицы в БД не являются пустыми;
установлен SPAS;
установлен СУДИР;
установлен web-браузер (Яндекс.Браузер версии не ниже 19.10.1).
Опциональная установка/использование следующих компонентов, производится по усмотрению потребителя:
доступ на чтение к базе данных справочников (ЕКПиТ), а также пользователь и пароль к ней. Предполагается, что все действия по инициализации схемы данных пользователя были сделаны заранее, а таблицы в БД не являются пустыми;
Компонент Прикладной журнал (APLJ) продукта Platform V Data Tools;
Продукт Platform V One-Time-Token (OTT);
Компонент Аудит (AUDT) продукта Platform V Audit SE;
Компонент Журналирование (LOGA) продукта Platform V Monitor;
Компонент Объединенный мониторинг (MONA) продукта Platform V Monitor;
Компонент Авторизация (AUTZ) продукта Platform V IAM SE;
Компонент IAM Proxy (AUTH) продукта Platform V IAM SE (реализует аутентификацию и авторизацию).
Аппаратные требования#
В качестве клиентской части Конструктора Стратегий Продукта используется АРМ, реализуемое по технологии «тонкого» клиента (web-интерфейс). Минимальные требования к составу оборудования системного блока типового АРМ по web-технологии и их характеристики:
процессор — Pentium III;
объем оперативной памяти — 512 Мб;
сетевая карта;
видеокарта — SVGA 32 Мб с поддержкой видео режима с глубиной цвета не хуже HiColor (65536 цветов);
жёсткий диск — 10 Гб;
мониторы с разрешающей способностью не менее 1024х768 пикселей.
Программные требования#
Требования к ПО:
сервер приложений WildFly (лицензия LGPL2.1) 10.1.0.Final;
клиент liquibase (нужен только на время развертывания);
OpenJDK рекомендуется использовать версию 1.8
Функционирование 3-го поколения обеспечивается разворачиванием приложения на сервере приложений (WildFly). При разворачивании используются платформенные сервисы. В транспорте (ММТ) выполняется регистрация API, которые обслуживают вызовы, приходящие по ММТ.
Необходимые компоненты для корректной установки Продукта#
Для корректной установки Продукта требуется наличие следующих компонентов — модулей в сервере приложений, от которых зависит Продукт:
<dependencies>
<module name="org.dom4j"/>
<module name="deployment.custodian-distr-impl-ear.ear" services="import" optional="true"/>
<module name="deployment.logger-platform-${version}.war" optional="true"/>
<module name="deployment.seap-lib-${version}.ear" meta-inf="import" services="import" optional="true" />
</dependencies>
Seap_lip
Для того, чтобы выполнить установку Seap_lip:
Скопируйте файл seap-lib*.ear, расположенный в party-дистрибутиве, в папке lib-overlay на сервер WildFly.
Выполните разархивацию.
unzip -q seap-lib*.ear -d <your seap-lib dir >
В распакованной директории выдайте разрешение на исполнение к файлам с расширением sh.
chmod +x ${SEAP_LIB_DIR}/*.sh
Убедитесь, что в окружении заведен env JBOSS_HOME. В случае отсутствия добавьте, пример: export JBOSS_HOME=/opt/wildfly.
Вызовите скрипт.
create-overlay.sh
В результате чего произойдет добавление библиотек в WildFly.
Подключите зависимости в инсталляцию приложения.
. jboss-cli.sh --connect --command="deployment-overlay link --name=seap-lib-<version>--deployments=<имя инсталляции приложения, пример: pricing-service-war >
Подробное описание содержится в документации WildFly.
Установка#
Подготовка к развертыванию сервера приложений#
Пререквизитом для установки Продукта является установка и настройка следующих продуктов/компонентов, использование которых носит опциональный характер:
Platform V Configuration;
компонент Журналирование (LOGA) продукта Platform V Monitor;
Platform V Audit SE.
Кроме того, необходимо, чтобы было настроено Единое Информационное Пространство.
В рамках установки Продукта (Расчетного модуля) использованы конфигурационные файлы, где прописаны все интеграции, дополнительных действий администратора не предполагается. Обязательные и необязательные параметры по установке указаны ниже по документу.
Настройка сервера приложений#
Настройка сервера приложений для работы с БД модуля Конфигуратор#
Чтобы Продукт загружал конфигурационные настройки системных модулей Платформы и свои бизнес-параметры, в настройках сервера приложений (WildFly/bin/standalone.conf) пропишите параметры подключения к БД модуля Конфигуратор.
При этом сам модуль Конфигуратор должен быть заранее установлен, выполнены все скрипты БД, входящие в состав дистрибутива модуля Конфигуратор (в том числе скрипты, создающие учетную запись пользователя для чтения конфигурационных параметров).
Название |
Значение (пример) |
Описание |
|---|---|---|
config-store@jdbc.url |
|
URL для подключения к БД Конфигуратора |
config-store@jdbc.login |
|
Логин пользователя с правами на чтение схемы Конфигуратора |
config-store@jdbc.password |
|
Пароль пользователя с правами на чтение схемы Конфигуратора |
config-store@crypto.password |
|
Ключ для шифрования пароля. Обязательно должен совпадать со значением ключа crypto.password Конфигуратора (задается при установке конфигуратора) |
node.id |
|
Идентификатор сервера для межмодульного транспорта (должен быть уникален в рамках всей инфраструктуры back-части платформы) |
Создание источников данных#
В конфигурационном файле WildFly/standalone/configuration/standalone.xml пропишите драйвер для подключения к БД, в секцию <datasources> для <subsystem xmlns="urn:jboss:domain:datasources:4.0">.
<drivers>
<driver name="postgresql" module="org.postqres">
<driver-class>org.postqresql.Driver</driver-class>
</driver>
</drivers>
Для источника данных Platform V Product Pricing в конфигурационный файл добавьте строки с параметрами, пример которых показан в коде ниже:
<xa-datasource jndi-name="java:/jdbc/pricing" pool-name="IFT_PricingDS" enabled="true" use-ccm="true">
<xa-datasource-property name="URL">jdbc:postgresql://10.53.238.164:6543/dp?prepareThreshoId=0</xa-datasource-property>
<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
<driver>postgresql</driver>
<xa-pool>
<is-same-rm-override>false</is-same-rm-override>
<no-tx-separate-pools>true</no-tx-separate-pools>
</xa-pool>
<security>
<user-name>PRICING_SERVICES_APPL</user-name>
<password>PRICING_SERVICES_APPL</password>
</security>
Для источника данных ЕКПиТ, должен быть добавлен конфигурационный файл со следующими параметрами:
<xa-datasource jndi-name="java:/jdbc/ekpit" pool-name="ekpitDataBaseDS" enabled="true" use-ccm="true">
<xa-datasource-property name="URL">
jdbc:dbserver:thin:@grid1655.maindomain.mycompany.ru:1521:db18
</xa-datasource-property>
<xa-datasource-class>postgresql.jdbc.xa.client.DatabaseXADataSource</xa-datasource-class>
<driver>postgresql</driver>
<xa-pool>
<is-same-rm-override>false</is-same-rm-override>
<no-tx-separate-pools>true</no-tx-separate-pools>
</xa-pool>
<security>
<user-name>EKPIT</user-name>
<password>EKPIT</password>
</security>
</xa-datasource>
В конфигурации приложения (Конфигуратор или platform-config.properties) укажите следующие параметры (если они отличаются от принятых по умолчанию):
Название |
Значение (пример) |
Описание |
|---|---|---|
|
|
JNDI-имя источника данных ЕКПиТ |
|
|
Имя владельца схемы (если отличается от текущего пользователя) |
|
|
JNDI-имя источника данных Продукта |
|
|
Имя владельца схемы, если отличается от текущего пользователя |
Если предусмотрена работа в режиме StandIn, добавьте следующие параметры:
Название |
Значение (пример) |
Описание |
|---|---|---|
|
|
JNDI-имя источника данных ЕКПиТ |
|
|
JNDI-имя источника данных |
Установка web-приложений на сервер WildFly#
Перед установкой приложений установите библиотеку seap-lib. Для корректной работы Продукта необходим overlay – seap-lib-8.1. Установка приложений представляет собой развертывание *.war-пакетов на сервер приложений:
Конструктор Стратегий: pricing-ide-war-<номер_версии>.war;
Расчетный Модуль: pricing-service-war-<номер_версии>.war.
Инструкции о способах развертывания war-пакетов можно найти в документации WildFly.
Конфигурация развернутых приложений#
В комплекте поставки в директории configuration идут следующие файлы с определением конфигурационных параметров:
pricing-ide-config-struct.xml: файл конфигурации Конструктора Стратегий Продукта;pricing-service-config-struct.xml: файл конфигурации Расчетного Модуля Продукта.
Таблица ниже содержит конфигурационные параметры Расчетного Модуля.
Имя параметра |
Описание |
Пример значения |
|---|---|---|
|
Значение timeout по умолчанию (в секундах) |
|
|
Включен ли механизм накопления сообщений в логгер с уровнем DEBUG |
|
|
JNDI-имя источника данных схемы ЕКПиТ |
|
|
Имя схемы владельца сущностей ЕКПиТ |
|
|
JNDI-имя источника данных схемы ЕКПиТ SI |
|
|
JNDI-имя источника данных схемы Продукта |
|
|
Имя схемы владельца сущностей Продукта |
|
|
JNDI-имя источника данных схемы Продукта |
|
|
Признак включенного механизма трассировки |
|
|
Признак включенного режима только мониторинг |
|
|
Признак включенного режима проверки ЭЦП стратегий |
|
|
Graceful Shutdown |
|
|
Graceful Shutdown |
|
|
Graceful Shutdown |
|
Таблица ниже содержит конфигурационные параметры Конструктора Правил.
Имя параметра |
Описание |
Пример значения |
|---|---|---|
rule-lock-timeout |
Время удержания блокировки после последнего действия пользователя (в минутах). Если правило редактируется и пользователь не нажимает кнопку Сохранить в течение N минут (значение параметра), то другой пользователь может забрать блокировку данного правила и, соответственно, сохранение правила первым пользователем не произойдет |
10 |
third-party-default-timeout |
Время ожидания ответа по умолчанию |
120 |
tpsEnabled |
Включена ли проверка производительности стратегий |
false (default) |
jndiNameEkpit |
JNDI-имя источника данных схемы ЕКПиТ |
pricing-ide@jndiNamePricing=java:/jdbc/pricing_ift |
ownerSchemaEkpit |
Имя схемы владельца сущностей ЕКПиТ |
pricing-ide@jndiNamePricingStandIn=java:/jdbc/pricingStandIn |
jndiNameEkpitStandIn |
JNDI-имя источника данных схемы ЕКПиТ SI |
pricing-ide@jndiNameEkpitStandIn=java:/jdbc/ekpitStandIn |
jndiNamePricing |
JNDI-имя источника данных схемы Продукта |
pricing-ide@jndiNameEkpit=java:/jdbc/ekpit_ift |
ownerSchemaPricing |
Имя схемы владельца сущностей Продукта |
pricing-ide@ownerSchemaPricing=PRICING_SERVICES |
jndiNamePricingStandIn" |
JNDI-имя источника данных схемы Продукта SI |
pricing-ide@ownerSchemaEkpit=EKPIT |
useTrace |
Признак включенной трассировки |
false (default) |
pj.disabled |
Признак отключенной отправки в ПЖ |
false (default) |
pprbac.gf.shutdown.maxpoolsize |
Максимальный размер пула выключения всех API-серверов |
50 |
pprbac.gf.shutdown.timeout |
Timeout в течении которого выполняется ожидание выключения всех API-северов |
40000 |
pj.disabled |
Отправка в ПЖ отключена |
false (default) |
pjDataSetPayloadSize |
Максимальный размер набора данных отправляемых в ПЖ |
102400 |
Для работы с Конструктором Стратегий Продукта требуется иметь идентифицированных пользователей с набором ролей. Роль представляет собой набор прав (грантов) на выполнение определенных действий.
Список функциональных прав, используемых в Конструкторе стратегий:
NAME |
DISPLAY NAME |
|---|---|
calc_export |
Экспорт расчетов |
calc_import |
Импорт расчетов для тестов |
calc_import_limited |
Импорт расчетов ограниченный |
data_view |
Просмотр |
function_delete |
Удаление функций |
function_edit |
Редактирование функций |
rule_bulk_publish |
Массовая публикация стратегий |
rule_delete |
Удаление стратегий |
rule_edit |
Редактирование стратегий |
rule_publish |
Публикация стратегий |
rule_update |
Актуализация стратегий |
test_edit |
Редактирование тестовых наборов данных |
test_exec |
Выполнение тестов |
test_perfomance |
Проверка производительности |
Настройка пространства WildFly#
Для того чтобы установить PostgreSQL jdbc-driver и добавить источник данных:
Воспользуйтесь драйвером из дистрибутива ojdbc.jar: \sbt-spb-fsrv-01\OAVSP\Distrib\Servers\ojdbc;
Создайте директорию [WILDFLY_HOME]/modules/system/layers/base/com/postgresql/main/;
Скопируйте в созданную директорию ojdbc.jar;
Создайте файл module.xml в той же директории и добавьте:
<?xml version="1.0" encoding="UTF-8"?> <module xmlns="urn:jboss:module:1.3" name="org.postqres"> <resources> <resource-root path="ojdbc6.jar"/> </resources> <dependencies> <module name="javax.api"/> <module name="javax.transaction.api"/> </dependencies> </module>В конфигурационном файле standalone/configuration/standalone.xml добавьте в тег
следующее описание: <driver name="postgresql" module="org.postqres"> <driver-class>org.postqresql.Driver</driver-class> </driver>Добавьте источник данных в
после ExampleDS:
<xa-datasource jndi-name="java:/jdbc/pricingDS" pool-name="pricingDS" enabled="true" use-ccm="true">
<xa-datasource-property name="URL">
jdbc:postgresql:@10.68.24.101:1521:filtes
</xa-datasource-property>
<xa-datasource-class>org.postqresql.xa.PGXADataSource</xa-datasource-class>
<driver>postgresql</driver>
<xa-pool>
<min-pool-size>1</min-pool-size>
<initial-pool-size>1</initial-pool-size>
<max-pool-size>10</max-pool-size>
<is-same-rm-override>false</is-same-rm-override>
<no-tx-separate-pools>true</no-tx-separate-pools>
</xa-pool>
<security>
<user-name>SERVICE_PACKAGE</user-name>
<password>SERVICE_PACKAGE</password>
</security>
</xa-datasource>
Взаимодействие с СУДИР#
Интеграция с СУДИР реализована на уровне back-части платформы (модуль Технологического Ядра).
Реализованные механизмы |
Способ реализации |
|---|---|
Реализован механизм управления доступом и обеспечено автоматическое предоставление типового набора прав доступа в соответствии с ролевой моделью |
Реализовано на уровне back-части платформы (модуль Технологического Ядра) |
Реализована максимальная длина, сложность и случайность значений сессионных идентификаторов |
Реализовано на уровне back-части платформы (модуль Технологического Ядра) |
Реализован контроль соответствия идентификатора сессии IP-адресу авторизованного пользователя |
Реализовано на уровне back-части платформы (модуль Технологического Ядра) |
Реализован механизм блокирования идентификатора сессии по истечении установленного времени не активности пользователя и при выходе пользователя из системы |
Реализовано на уровне back-части платформы (модуль Технологического Ядра) |
Реализовано периодическое подтверждение своих прав пользователем в АС путем ввода учетных данных (пароля), перед совершением критичных операций |
Требование к подтверждению публикации повторным вводом логина/пароля отложено на дальнейшее развитие |
Реализовано предоставление доступа в АС только в рамках роли, получаемой АС из СУДИР по результатам аутентификации пользователя |
В Системе для определения доступа пользователя будет использоваться только наличие привилегии в роли пользователя |
Реализован функционал создания и управления учетными записями пользователей |
Реализовано в СУДИР |
Блокировка пользователей осуществляется путем перевода их в разряд заблокированных без возможности совершения операций под их именами |
Реализовано в СУДИР |
Реализована авторизация доступа и инструментов общего администрирования |
Реализовано на уровне back-части платформы (модуль Технологического Ядра) |
Реализован механизм контроля доступа, предоставляемый СУДИР |
Реализовано на уровне back-части платформы (модуль Технологического Ядра) |
Метрики#
Реализован сбор метрик модуля pricing-service.
Метрики pricing-service
Название метрики |
Идентификатор метрики |
Описание |
Разрезы фиксации |
Возможные значения |
|---|---|---|---|---|
Доступность модуля |
pricing-service.availability |
Метрика контроля доступности модуля pricing-service |
– |
"1" - доступен "0" - модуль отключен |
Доступность базы данных |
Pricing (Main) pricing-service.health.db.pricing.main |
Метрика контроля доступности базы данных для модуля pricing-service |
– |
"1" - БД доступна "0" - БД не доступна |
Доступность базы данных Pricing (SI) |
pricing-service.health.db.pricing.si |
Метрика контроля доступности базы данных SI для модуля pricing-service |
– |
"1" - БД доступна "0" - БД не доступна |
Доступность базы данных ЕКПиТ (Main) |
pricing-service.health.db.ekpit.main |
Метрика контроля доступности базы данных для модуля pricing-service |
– |
"1" - БД доступна "1" - БД доступна |
Доступность базы данных ЕКПиТ (SI) |
pricing-service.health.db.ekpit.si |
Метрика контроля доступности базы данных для модуля pricing-service |
– |
"1" - БД доступна "1" - БД доступна |
Доступность внешних API |
pricing-service.health.api |
Метрика контроля доступности внешних API для модуля pricing-service |
className - Java класс API;methodName - Имя метода |
"1" - API доступны "0" - API не доступны |
Продукт: Выполнение стратегий |
pricing-service.ruleExecution |
Метрика выполнения стратегий Продуктa - Время выполнения одной стратегии (одного расчета) |
terbank - Номер региона из запроса;opCode - Уникальный код расчета;spName - Название АС инициатора |
Время в мс выполнения стратегии |
Продукт: Вызовы функций |
pricing-service.functionCall |
Название функции, которая была вызвана |
functionName - DSL название функции |
Время в мс выполнения функции |
Продукт: Количество ошибок выполнения стратегий |
pricing-service.ruleErrors |
Метрика количества ошибок выполнения стратегий Продукта |
terbank - Номер региона из запроса; opCode - Уникальный код расчета; spName - Название АС инициатора |
Количество ошибок (счетчик) |
Задача тестирования инсталляции#
Создание job Jenkins по запуску smoke-тестов.
Создание job Jenkins по запуску smoke-тестов#
При установке необходимо использовать скрипт соответствующий версии дистрибутива, чтобы скрипт и дистрибутив находились в соответствии.
Для создания job Jenkins:
В Jenkins создайте задачу типа "Pipeline".
В секции Pipeline в поле
DefinitionвыберитеPipeline script from SCM.

В поле
SCMвыберитеGit.Укажите адрес к репозиторию с сохраненной задачей, а также имя, где сохранена задача, также указываем имя Credentials в jenkins для доступа к этому репозиторию.

В поле
Branches to buildукажите ветку, в которой находится скрипт задачи.В поле
Script Pathукажите путь до файла скрипта.Сохраните изменения.
Описание скрипта запуска тестов (Jenkinsfile)#
Для запуска smoke тестов нужно использовать созданную ранее задачу Jenkins.
Для этой job нужно указать следующие параметры:
standType— имя стенда, для которого будут запущены тесты.artifactUrl— ссылка на дистрибутив из Nexus.Опциональное значение ветки репозитория, из которой будем брать параметры и секреты. Если значение не указано явным образом, будет использовано значение ветки по умолчанию (параметр
secretAndParametersRepoBranch).
В процессе работы задачи будут выполнены следующие действия:
Запущены тесты для кластера и на geo-балансировщик с поддержкой ОТТ.
Запущены тесты для кластера и на geo-балансировщик без ОТТ.
Создание keystore и truststore ОТТ#
Для доступа к серверу ОТТ понадобится сертификат, ключ и цепочка сертификатов.
Для выпуска сертификата ОТТ нужно выполнить следующие шаги:
Получить публичный сертификат. Публичные сертификаты сервера ОТТ выдаются по ЗНО. Нужно обращаться к администраторам ТЯ.
Получить приватный сертификат. В качестве module.id указать значение:
pricing-service-cloud-test.После выполнения шагов должно быть получено два файла (имена могут отличаться от указанных ниже примеров):
ott_service_truststore.p12 — публичная часть (truststore);
pricing-service.p12 — приватная часть (keystore).
Переименовать файлы на
ott-truststore.p12иott-keystore.p12.Сохранить файлы в репозитории в каталоге
test-resourcesв директории с секретами${secretConfigurationPath}.
Создание keystore и truststore TLS#
Корневой и промежуточный доверенные сертификаты выданы тестовым удостоверяющим центром Компании. Для промышленных стендов удостоверяющий центр должен быть не тестовым. Поэтому часть файлов будет называться по-другому.
Для выпуска сертификата TLS:
Создайте конфигурацию запроса на сертификат.
[ req ]
default_bits = 2048
distinguished_name = req_distinguished_name
req_extensions = req_ext
prompt = no
[ req_distinguished_name ]
countryName = RU
stateOrProvinceName = MOW
localityName = MOW
organizationName = MYCOMPANY
commonName = pricing-service-cloud-test
[ req_ext ]
subjectAltName = @alt_names
[alt_names]
DNS.1 = pricing-service-cloud-test
Сформируйте request.csr.
openssl req -out request.csr -newkey rsa:2048 -nodes -keyout tls.key -config request.cnf
Оформите ЗНО через ServiceManager, прикладывая файл request.csr. При этом нужно обязательно запросить создание клиентского сертификата.
После получения ответа, скопируйте файл request.cer (подписанный сертификат в формате DER), и цепочку сертификатов, которым он подписан.
Преобразуйте полученный сертификат в формат PEM.
openssl x509 -inform DER -in request.cer -out tls.crt
Создайте хранилище keystore.
openssl pkcs12 -export -inkey tls.key -out keystore.p12 -in tls.crt
Преобразуйте keystore из формата PKCS12 в JKS.
keytool -importkeystore -destkeystore keystore.jks -srckeystore keystore.p12 -srcstoretype PKCS12
Измените пароль приватного ключа.
keytool -keypasswd -keystore keystore.jks -alias 1
Измените алиас сертификата.
keytool -changealias -alias 1 -destalias pricing-service-cloud-test -keystore keystore.jks
Преобразуйте полученный корневой сертификат в формат PEM.
openssl x509 -inform DER -in "Test Root CA 2.cer" -out "Test Root CA 2.crt"
Преобразуйте полученный промежуточный сертификат в формат PEM.
openssl x509 -inform DER -in "Sberbank Test Issuing CA 2.cer" -out "Sberbank Test Issuing CA 2.crt"
Создайте хранилище truststore.jks и добавить в него доверенный корневой сертификат.
keytool -import -keystore truststore.jks -file "Test Root CA 2.crt" -alias root-ca -noprompt
Добавьте в truststore.jks промежуточный доверенный сертификат.
keytool -import -keystore truststore.jks -file "Sberbank Test Issuing CA 2.crt" -alias chain-ca -noprompt
Сохраните файлы в репозитории в каталоге test-resources в директории с секретами ${secretConfigurationPath}`.
Получаем два файла:
keystore.jks — приватный ключ и сертификат
truststore.jks — доверенные сертификаты
Обновление файла passwords.properties паролями от хранилищ и ключей#
В файле хранятся пароли к БД для запуска liquibase, а также пароли к хранилищам сертификатов и ключей для запуска job тестирования.
Файл шифруется тем же способом, и с тем же паролем, что и секреты для среды контейнеризации Kubernetes или Red Hat OpenShift 4+ с помощью ansible-vault.
Файл passwords.properties следует разместить в том же каталоге, в котором находятся секреты для среды контейнеризации Kubernetes или Red Hat OpenShift 4+ в зашифрованном виде — ${secretConfigurationPath}.
В файл passwords.properties нужно добавить пароли для созданных хранилищ и ключей:
...
ott.certstore.pwd=111111
ott.trust.store.pwd=111111
ott.certstore.private.key.pwd=111111
transport.rest.ssl.keystore.password=2222222
transport.rest.ssl.private.key.password=111111
transport.rest.ssl.truststore.password=111111
Описание добавляемых параметров:
ott.certstore.pwd— пароль для доступа к хранилищу сертификатов ОТТ.ott.trust.store.pwd— пароль доступа к хранилищу доверенных сертификатов ОТТ.ott.certstore.private.key.pwd— пароль доступа к приватному ключу ОТТtransport.rest.ssl.keystore.password— пароль для доступа к хранилищу сертификатов.transport.rest.ssl.private.key.password— пароль доступа к приватному ключу.
Обновление#
Обновление осуществляется так же, как первоначальная установка: запускается задача установки с параметром updateMode = fullInstall.
В процедуру установки включен процесс обновления базы данных с помощью утилиты liquibase.
Установку новой версии продукта необходимо осуществлять согласно описанным шагам в разделе Установка текущего документа.
Дополнительных настроек не требуется.
Проверка работоспособности установки#
Для проверки корректности установки, проверьте, что задача установки завершилась со статусом SUCCESS (успешно).
Проверка работоспособности осуществляется путем:
unit-теста и проверки доступности базы данных;
выполнение автотестов и smart регрессов.
Откат#
Автоматической процедуры отката нет.
Для отката необходимо выполнить установку предыдущей стабильной версии в соответствии с инструкцией, раздел Установка текущего документа.
Часто встречающиеся проблемы и пути их устранения#
В данном разделе приведены наиболее частые проблемы и описаны пути их устранения.
Проблема |
Причина |
Способ устранения |
|---|---|---|
Загрузка конфигурационных элементов |
Некорректная загрузка |
Просмотреть логи на наличие ошибок |
При накате скриптов Liquibase |
– |
Обратиться в команду разработки |
При деплое Продукта |
– |
Обратиться к администраторам Wildfly |
Чек-лист валидации установки#
После установки необходимо проверить:
для проекта в WildFly создались объекты приложений.
логи на отсутствие ошибок, логи можно наблюдать в централизованной системе управления.