Установка в OpenShift (опционально)#

Установка выполняется одним из следующих способов:

  • в ручном режиме;

  • в автоматическом режиме.

Примечание: Перед установкой необходимо произвести подготовку окружения:

  • Выпустить сертификаты;

  • Настроить параметры безопасности. Настройка параметров безопасности описана в разделе Настройка параметров безопасности документа Руководство по системному администрированию.

Установка в ручном режиме#

Для установки необходимо выполнить все этапы.

  1. Настройте загрузку образа из registry компонентов (szux-bh, szux-pl) в namespace:

    • Откройте UI OpenShift;

    • Перейдите в раздел WorkloadsSecrets:

    • Нажмите кнопку добавления Secret с типом Image Pull Secret;

    • Укажите следующие настройки:

      • secret name: имя в нижнем регистре;

      • registry server address: <Указать путь до registry server address>;

      • username и password: имя и пароль ТУЗа с доступом в реестр, из-под которого будут загружаться образы из registry в проект (namespace) OpenShift;

    • Перейдите в раздел User ManagementService Account;

    • Выберите в списке аккаунт default;

    • Перейдите на вкладку yaml;

    • В области imagePullSecrets добавьте еще одну запись:

      — name: <имя_созданного_image_pull_secret>.

  2. Подключитесь к OpenShift.

    В терминале запустите команду:

    oc login https://<адрес host>

    Будет произвен запрос на ввод учетных данных. Введите login/password учетной записи, которая имеет доступ к <адрес host>.

  3. Подключитесь к проекту.

    В терминале запустите команду:

    oc project <имя_namespace>

    Введите наименование проекта (namespace) в OpenShift, в котором будет развернут продукт.

  4. Настройте secret для подключения к базе данных:

    • Откройте UI OpenShift;

    • Перейдите в раздел WorkloadsSecrets;

    • Нажмите кнопку добавления Secret с типом Key/Value Secret;

    • Укажите следующие настройки:

Secret Name = costcalc-certs-bd
Key = szux.db.config.password
Value = spring.datasource.password: <password>

Key = szux.db.config.username
Value = spring.datasource.username: <username>

Key = szux.user.default.manager
Value = user.default-manager: <username>
  • укажите password от учетной записи для подключения к базе данных PostgreSQL.

  1. Обновите список таблиц в базе данных.

    • Создайте дополнительную схему в базе данных szux_liq. В сервисе для работы с базой данных выполните команду:

      CREATE SCHEMA szux_liq;

    • Добавьте библиотеку extention pgcrypto для базы данных. В сервисе для работы с базой данных выполните команду:

      CREATE EXTENSION IF NOT EXISTS pgcrypto WITH SCHEMA szux_costcalculator;

      Команда выполняется привилегированным пользователем (superuser).

  2. Добавьте szux-bh image в OpenShift:

    В терминале запустите команду:

    oc tag registry/szux-bh:<module_version> <namespace>/szux-bh:<module_version>

    Укажите в команде актуальные данные:

    • Registry;

    • Версия модуля szux-bh из registry (пример latest);

    • Namespace;

    • Версия модуля szux-bh для registry OpenShift.

  3. Добавьте szux-pl image в OpenShift.

    В терминале запустите команду:

    oc tag registry/szux-pl:<module_version> <namespace>/szux-pl:<module_version>

    Укажите в команде актуальные данные:

    • Registry;

    • Версия модуля szux-pl из registry (пример latest);

    • Namespace;

    • Версия модуля szux-pl для registry OpenShift.

  4. Заполните сonfigmap szux.conf

    Пример:

   #oc props example
   STAND_ID=ift                         #указываем id стенда
   DOCKER_REGISTRY=registry             #указываем registry
   SZUX_PL_VERSION=$SZUX_PL_VERSION #версия image модуля szux-pl
   SZUX_BH_VERSION=$SZUX_BH_VERSION #версия image модуля szux-bh
   JDBC_URL=jdbc:postgresql://          #url базы данных PostgreSQL
   POSTGRES_USER=adm                    #указываем учетную запись для подключения к Postgres
   SZUXBH_URL=szux-bh-<STAND_ID>-<namespace>.apps.<url api(<указать путь до api>)>
   #указываем ресурсы:
   szux_bh_resources_limits_cpu=500m
   szux_bh_resources_request_cpu=300m
   szux_bh_resources_limits_memory=2Gi
   szux_bh_resources_request_memory=1Gi
   szux_pl_resources_limits_cpu=256m
   szux_pl_resources_request_cpu=128m
   szux_pl_resources_limits_memory=256Mi
   szux_pl_resources_request_memory=128Mi
  1. Остановите szux-bh в OpenShift.

    В терминале запустите команду:

    oc process -n <имя namespace> -f <template> --param-file=<props> --ignore-unknown-parameters=true | oc apply -n <namespace> -f

    Укажите в команде актуальные данные:

    • Namespace;

    • Template (пример szux-bh-template.yaml);

    • Param-file (пример szux-ift.conf).

  2. Установите szux-pl в OpenShift.

В терминале запустите команду:

```oc process -n <namespace> -f <template> --param-file=<props> --ignore-unknown-parameters=true | oc apply -n <namespace> -f```

Укажите в команде актуальные данные:

  • Namespace;

  • Template (пример szux-pl-template.yaml);

  • Param-file (пример szux-ift.conf).

  1. При необходимости использования Istio:

    • Заполните конфигурационные файлы, располагающиеся по адресу:

      • путь до директории/k8s/base/istio/config;

      • путь до директории/overrides/openshift/istio/deployments;

    • Заполните secrets, располагающиеся по адресу:

      • путь до директории/k8s/base/istio/secrets;

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

      • путь до директории/k8s/base/istio/config;

        Установка файлов выполняется с помощью команды:

        oc apply -f <Наименование конфигурационного файла> -n <Наименование namespace>

    • Выполните установку Deployments -> Deployment:

      • ingress;

      • egress.

  2. При необходимости использования OTTS:

    • Выполните установку Istio:

      • Заполните манифест по ОТТ для eggres;

    • Создайте secret ОТТ (в UI OpenShift или с помощью команды oc apply -f <Наименование конфигурационного файла> -n <Наименование namespace>)

      • Содержимое secret в формате:

    kind: Secret
    apiVersion: v1
    metadata:
    name: istio-secret-szux
    data:
    szux_istio_ott_pass_OTT_CERTSTORE_PRIVATE_KEY_PWD: <пароль в base64>
    szux_istio_ott_pass_OTT_CERTSTORE_PWD: <пароль в base64>
    szux_istio_ott_pass_OTT_TRUST_STORE_PWD: <пароль в base64>
    type: Opaque
    

    Где,

    • szux_istio_ott_pass_OTT_TRUST_STORE_PWD – пароль от контейнера с сертификатом OTTS Сервиса;

    • szux_istio_ott_pass_OTT_CERTSTORE_PWD – пароль от контейнера с сертификатом модуля;

    • szux_istio_ott_pass_OTT_CERTSTORE_PRIVATE_KEY_PWD – пароль для извлечения секретного ключа модуля (=OTT_CERTSTORE_PWD);

    • Добавьте secret ОТТ в конфигурационный файл;

      • egress-svc.yaml;

    • Выполните установку конфигурационных файлов:

      • путь до директории /k8s/base/istio/config;

        Установка файлов выполняется с помощью команды:

        oc apply -f <Наименование конфигурационного файла> -n <Наименование namespace>

    • Выполните установку Deployments -> Deployment:

      • egress.

  3. При необходимости использования Istio и OTTS выполняйте шаги одновременно.

  4. Завершите работы:

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

```oc logout```
  1. Установите дополнительные модули сервисов:

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

      • Установка опциональна;

      • Все необходимые модули Объединенный мониторинг Unimon (MONA) устанавливаются отдельно и независимо от текущего сервиса по инструкции Объединенный мониторинг Unimon (MONA).

Установка в автоматическом режиме#

Установка дистрибутива производится с помощью компонента продукта Platform V DevOps Tools (DOT) - Deploy tools (CDJE).

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

Для установки необходимо выполнить все этапы установки.

  1. Актуализируйте конфигурационные файлы в common repository (информация о стенде).

    • common.conf.yml.

      • Файл расположен по адресу: название common repository/стенд/ansible/common.conf.yml;

      • Добавьте параметры в соответствии с файлом common.conf.yml. Описание параметров представлено в теле файла.

  2. Смигрируйте конфигурационные файлы:

    • Откройте ПО Jenkins;

    • Выберите функцию "Собрать с помощью job Deploy";

    • Активируйте функцию "Собрать с помощью job Deploy";

    • Выберите шаг установки (playbook): MIGRATION_FP_CONF - Миграция конфигурационных файлов ФП;

    • Подтвердите "Собрать с помощью job Deploy".

    В результате выполнения шага будут мигрироваться следующие файлы. Описание параметров представлено в теле файла:

  3. Заполните файл _passwords.conf.

    • Найдите файл по адресу: название common repository/стенд/ansible/_passwords.conf.

    • Добавьте в файл параметры:

      • Параметры для базы данных DB

        • szux.db.config.username=spring.datasource.username: username.

          • Обязательные для заполнения.

          • При использовании интеграции с Secret Management System параметры оставить пустыми, без значений.

        • szux.db.config.password=spring.datasource.password: password.

          • Обязательные для заполнения.

          • При использовании интеграции с Secret Management System параметры оставить пустыми, без значений.

        • szux.ssl.ose.keyStore.db.password = password. (Переменная с паролем от .jks).

      • Параметры для istio (для создания Secrets из jks):

        • szux.ssl.ose.istio.keyStore.ingress.password=password.

        • szux.ssl.ose.istio.keyStore.egress.password=password.

      • Параметры для OTTS:

        • szux.ssl.ose.ott.keyStore.password = password (Переменная с паролем от .jks).

      • Пользователь по умолчанию:

        • szux.user.default.manager=user.default-manager: .

        • Обязателен для заполнения без интеграции с Secret Management System.

        • При использовании интеграции с Secret Management System значение параметра может быть пустым, без значений.

  4. Хранение secrets.

    • Интеграция с Secret Management System присутствует:

    • Интеграция с Secret Management System отсутствует:

      • Найдите пространство по адресу: название common repository/стенд/ansible/files/ssl/szux/

      • Добавьте файлы, указанные в таблице.

Таблица. Наименование файлов для хранения secrets

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

Описание

costcalc-certs-bd.jks

Хранилище клиентского сертификата/ключа; серверного сертификата

szux-egress.jks

Хранилище клиентского сертификата/ключа; trust store сертификата

szux-ingress.jks

Хранилище клиентского сертификата/ключа; trust store сертификата

szux-ott-certs.jks

Хранилище клиентского сертификат/ключа компонента szux-bh; серверного сертификата удостоверяющего центра, выпустивший TLS сертификаты сервисов OTTS; серверного сертификата для обеспечения обратной совместимости с OTTS сервисом версии 4.2.15

  1. Скорректируйте параметры в конфигурационных файлах.

    Скорректируйте при необходимости значения, доступные для изменения. Например:

    • /conf/config/parametrs/szux-bh.conf:

      • параметры ConfigMap;

    • /conf/config/parametrs/szux.all.conf:

      • переключатель для создания secret SSL для базы данных PostgreSQL (szux.ose.secret.bd.enabled);

    • /conf/config/parametrs/szux.isito.all.conf:

      • Общие настройки;

    • /conf/config/parametrs/szux-pl.conf:

      • параметры Deployment;

    • /conf/config/parametrs/szux-bh.fb.sidecar.conf:

      • Общие настройки.

  2. Создайте схему. Создание схемы проводится при необходимости создать целевую схему szux_costcalculator.

    1. Создайте дополнительную схему в базе данных szux_liq. В сервисе для работы с базой данных выполните команду:

    CREATE SCHEMA szux_liq;

    1. Добавьте библиотеку extention pgcrypto для базы данных.

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

    CREATE EXTENSION IF NOT EXISTS pgcrypto WITH SCHEMA szux_costcalculator;

    Команда выполняется привилегированным пользователем (superuser).

    1. Создайте основную схему:

      • Откройте ПО Jenkins;

      • Выберите функцию "Собрать с помощью job Deploy";

      • Активируйте функцию "Собрать с помощью job Deploy";

      • Выберите шаг установки (playbook): DB_INIT - Запуск liquibase Init скриптов;

      • Подтвердите "Собрать с помощью job Deploy".

  3. Обновите список таблиц в базе данных. Проводится при необходимости создать новые таблицы в схеме.

    • Откройте ПО Jenkins;

    • Выберите функцию "Собрать с помощью job Deploy";

    • Активируйте функцию "Собрать с помощью job Deploy";

    • Выберите шаг установки (playbook): DB_UPDATE - Запуск liquibase скриптов;

    • Подтвердите "Собрать с помощью job Deploy".

  4. Установите сервис:

    • Откройте ПО Jenkins;

    • Выберите функцию "Собрать с помощью job Deploy";

    • Активируйте функцию "Собрать с помощью job Deploy";

    • Выберите шаг установки (playbook): OPENSHIFT_INGRESS_EGRESS_DEPLOY - deploy ingress/egress в OpenShift, если требуется установка сервиса Istio;

    • Выберите шаг установки (playbook): OPENSHIFT_DEPLOY - Установка в OpenShift для установки сервиса Cost Calculator;

    • Подтвердите "Собрать с помощью job Deploy".

  5. Установите дополнительные модули сервисов:

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

      • Установка опциональна;

      • Все необходимые модули Объединенный мониторинг Unimon (MONA) устанавливаются отдельно и независимо от текущего сервиса по инструкции Объединенный мониторинг Unimon (MONA).

  6. Проверьте правильность установки в соответствии с разделом Проверка работоспособности текущего документа.