Подготовка#
Создание ТУЗ и необходимые права для них#
Для разворачивания и функционирования программного компонента потребуются одна или несколько ТУЗ:
Для разворачивания компонента через deploy pipeline Доменный ТУЗ: да Необходимые права:
Доступ в среду контейнеризации
Доступ в BitBucket для клонирования скриптов разворачивания
Доступ к Nexus для загрузки разворачиваемого дистрибутива
Доступ в Docker registry для загрузки образов сервисов
Для проверки пользователей в ActiveDirectory через LDAP: Доменный ТУЗ: да Необходимые права: права на доступ в LDAP ActiveDirectory для проверки пользователей
Для автоматического запуска миграции в СУБД: Доменный ТУЗ: да Необходимые права:
Доступ к PostgreSQL
Роль ТУЗ в ролевой модели PostgreSQL должна быть "as_admin"
Создание проектной области Jenkins#
Для создания deploy и service pipeline в Jenkins необходимо создать отдельное пространство или переиспользовать существующее.
Настройка BitBucket#
Создать в 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 не выполнит миграцию.
Для ТУЗ DevOps предоставить права на push в ветку master в каждый созданный репозиторий.
В каждый созданный репозиторий сделать первоначальный commit, например, файла .gitignore в корень репозитория со следующим содержимым
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
Выпуск токенов для подключения к среде контейнеризации#
Для подключения к среде контейнеризации необходимо получить токен. OpenShift: User Management → ServiceAccounts → {название service аккаунта} → {token} → Reveal values → token
Добавление учетных данных в Jenkins Credentials plugin#
С помощью утилиты ssh-keygen сгенерировать ssh ключи с длиной 4096 бит для подключения к BitBucket.
** Генерация SSH ключей **
ssh-keygen -t rsa -b 4096
Содержимое файла с открытой частью ключа id_rsa.pub разместить в BitBucket.
Создать запись в Jenkins Credentials с типом SSH Username with private key, в которую разместить закрытую часть ключа из файла id_rsa.
Создать запись в Jenkins Credentials с типом Username with password, в которую разместить логин и пароль ТУЗ DevOps.
Создать запись в Jenkins Credentials с типом Secret text, в которую разместить пароль для файла _passwords.conf
Создать запись в Jenkins Credentials с типом Secret text, в которую разместить токен для подключения к среде контейнеризации (см. п. 3.1.5. Выпуск токенов для подключения к среде контейнеризации).
Подготовка СУБД#
Для настройки СУБД необходимо осуществить следующие подготовительные процедуры:
Создать табличные пространства:
emc_cfg_data
mail_ts_data
mail_ts_idx
mail_ts_lob
Создать базу данных с именем emcdb и владельцем as_admin.
Создать в базе данных схему с именем emc_cfg и владельцем as_admin.
Установить расширение pg_cron для поддержки выполнения задач по расписанию.
Настроить pg_cron следующим образом:
Конфигурация PostgreSQL для pg_cron
cron.database_name = 'emcdb'
shared_preload_libraries = 'pg_cron'
В консоли базы данных прописать команду:
Создание extension для pg_cron и выдача гранта на схему cron
CREATE EXTENSION pg_cron;
GRANT USAGE ON SCHEMA cron TO as_admin;
Подготовка хранилища файлов#
Для отправки писем с вложениями необходимо осуществить следующие подготовительные процедуры:
Получить учетные данные для подключения к серверу хранилища файлов S3 CEPH: Access key id, Secret access key, host, порт, UserID.
Создать в хранилище собственный bucket для дальнейшего использования.
Если в процессе эксплуатации компонента будут использованы сторонние bucket, то для UserID необходимы права WRITE или FULL_CONTROL на этот bucket, права добавляются в список Access Control List (ACL).
Подготовка подключения к Apache Kafka#
Для подключения к серверам Apache Kafka необходимы адреса серверов, порты для подключения, клиентский сертификат, а также названия топиков, из которых компонент будет получать запросы и размещать ответы.
Подготовка подключения к IBM MQ#
Для подключения к менеджеру IBM MQ необходим адрес сервера, порт, название канала для подключения, клиентский сертификат, а также названия очередей, из которых компонент будет получать запросы и размещать ответы.
Параметры подключения к LDAP#
Параметры подключения к LDAP приведены в Руководстве по безопасности, в разделе Настройка параметров безопасности