Подготовка#

Создание ТУЗ и необходимые права для них#

Для разворачивания и функционирования программного компонента потребуются одна или несколько ТУЗ:

  1. Для разворачивания компонента через deploy pipeline Доменный ТУЗ: да Необходимые права:

  • Доступ в среду оркестрации

  • Доступ в BitBucket для клонирования скриптов разворачивания

  • Доступ к Nexus для загрузки разворачиваемого дистрибутива

  • Доступ в Docker registry для загрузки образов сервисов

  1. Для проверки пользователей в ActiveDirectory через LDAP: Доменный ТУЗ: да Необходимые права: права на доступ в LDAP ActiveDirectory для проверки пользователей

  2. Для автоматического запуска миграции в СУБД: Доменный ТУЗ: да Необходимые права:

  • Доступ к PostgreSQL

  • Роль ТУЗ в ролевой модели PostgreSQL должна быть «as_admin»

Создание проектной области Jenkins#

Для создания deploy и service pipeline в Jenkins необходимо создать отдельное пространство или переиспользовать существующее.

Настройка BitBucket#

  1. Создать в BitBucket 3 репозитория:

  • {код компонента}mailbridge_common{стенд} - предназначения для хранения глобальных значений стендозависимых параметров.

  • {код компонента}mailbridge_mail{стенд} - предназначен для автоматической миграции набора стендозависимых параметров из устанавливаемого дистрибутива компонента.

  • {код компонента}mailbridge_pipeline{стенд} - предназначен для локального хранения скриптов разворачивания deploy pipeline. где код компонента - любой префикс компонента, стенд - любой суффикс, например, буквенный код стенда. У всех репозиториев коды компонентов и стенды должны быть одинаковы.

Например:

  • ci02606786_mailbridge_common_dev

  • ci02606786_mailbridge_mail_dev

  • ci02606786_mailbridge_pipeline_dev

Примечание: После миграции скриптов автоматизированного deploy по пути {код компонента}mailbridge_pipeline{стенд}/src/ru/sbrf/devops/pipeline/PipelineUtils.groovy появляется следующая логика

if (configEnv.scriptsCustom && (script.env.ENVIR ==~ /dev.*/ || script.env.ENVIR ==~ /mmv.*/)) {

что говорит о том, что {стенд} должен содержать суффиксы dev или mmv, например {стенд} = dev_lt иначе job не выполнит миграцию.

  1. Для ТУЗ DevOps предоставить права на push в ветку master в каждый созданный репозиторий.

  2. В каждый созданный репозиторий сделать первоначальный commit, например, файла .gitignore в корень репозитория со следующим содержимым

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr

Создание Service Account / Выпуск токенов для подключения к среде оркестрации#

Для подключения к среде оркестрации необходимо:

  1. Создать сервисную учетную запись в среде оркестрации (ServiceAccount)

apiVersion: v1
kind: ServiceAccount
metadata:
  name: {название_аккаунта}
automountServiceAccountToken: false
  1. Создать RoleBinding в выбранном namespace c типом ServiceAccount, Subject Name название_аккаунта и Role admin (или другой необходимой с достаточными правами)

  2. Создать секрет с типом kubernetes.io/service-account-token

kind: Secret
apiVersion: v1
metadata:
name: test-token
annotations:
  kubernetes.io/service-account.name: {название_аккаунта}
  kubernetes.io/service-account.uid: {uid_аккаунта}
type: kubernetes.io/service-account-token
  1. Получить токен из созданного секрета User Management → ServiceAccounts → {название service аккаунта} → {token} → Reveal values → token

Добавление учетных данных в Jenkins Credentials plugin#

  1. С помощью утилиты ssh-keygen сгенерировать ssh ключи с длиной 4096 бит для подключения к BitBucket.

** Генерация SSH ключей **
ssh-keygen -t rsa -b 4096
  1. Содержимое файла с открытой частью ключа id_rsa.pub разместить в BitBucket.

  2. Создать запись в Jenkins Credentials с типом SSH Username with private key, в которую разместить закрытую часть ключа из файла id_rsa.

  3. Создать запись в Jenkins Credentials с типом Username with password, в которую разместить логин и пароль ТУЗ DevOps.

  4. Создать запись в Jenkins Credentials с типом Secret text, в которую разместить пароль для файла _passwords.conf

  5. Создать запись в Jenkins Credentials с типом Secret text, в которую разместить токен для подключения к среде оркестрации (см. п. 3.1.5. Выпуск токенов для подключения к среде окрестрации).

Подготовка СУБД#

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

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

  • emc_cfg_data

  • mail_ts_data

  • mail_ts_idx

  • mail_ts_lob

  1. Создать базу данных с именем emcdb и владельцем as_admin.

  2. Создать в базе данных схемы с именами emc_cfg, mail_crypto, mail_audit, mail_sudir и владельцем as_admin.

  3. Установить расширение pg_cron для поддержки выполнения задач по расписанию.

  4. Настроить pg_cron следующим образом:

Конфигурация PostgreSQL для pg_cron

cron.database_name = 'emcdb'
shared_preload_libraries = 'pg_cron'
  1. В консоли базы данных прописать команду:

Создание extension для pg_cron и выдача гранта на схему cron

CREATE EXTENSION pg_cron;
GRANT USAGE ON SCHEMA cron TO as_admin;
  1. Настроить pg_cron на периодический вызов процедур create_daily_partitions и drop_daily_partitions для схем emc_cfg и mail_crypto

Подготовка хранилища файлов#

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

  1. Получить учетные данные для подключения к серверу хранилища файлов S3 CEPH: Access key id, Secret access key, host, порт, UserID.

  2. Создать в хранилище собственный bucket для дальнейшего использования.

  3. Если в процессе эксплуатации компонента будут использованы сторонние bucket, то для UserID необходимы права WRITE или FULL_CONTROL на этот bucket, права добавляются в список Access Control List (ACL).

Подготовка подключения к Apache Kafka#

Для подключения к серверам Apache Kafka необходимы адреса серверов, порты для подключения, клиентский сертификат, а также названия topics, из которых компонент будет получать запросы и размещать ответы.

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

С целью аутентификации пользователей для дальнейшей авторизации в консоли управления Адаптера Exchange используется система для обеспечения централизованной идентификации LDAP. Настройки подключения к LDAP указываются в конфигурационном файле микросервиса mail-back.

Ниже приведен пример части конфигурации микросервиса mail-back для взаимодействия с LDAP:

spring:
      ldap:
        username: 'LDAP_USERNAME'
        password: 'LDAP_PASSWORD'
        base: 'DC=sigma,DC=sbrf,DC=ru'
        urls: 'ldap://ldap_host:ldap_port'
        ignorePartialResultException: true

Настройка интеграции с LOGA#

Настройка интеграции с LOGA

Настройка интеграции с Единый Аудит#

Настройка интеграции с Единый Аудит

Настройка интеграции с OTTS#

Настройка интеграции с OTTS

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

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