Руководство по установке#

Инструмент управления поставками дистрибутивов служит для управления потоками развертывания и тестирования, автоматизации процессов поставки и контроля критериев качества дистрибутивов. Инструмент состоит из двух составляющих:

  • DevOps Pipeline Management (далее — DPM);

  • Quality Gates.

Соответственно документ Руководство по установке включает как руководство по установке DPM, так и руководство по установке Quality Gates.

Прежде чем приступить к установке компонента «Инструмент управления поставками дистрибутивов» (DPM), проверьте соблюдение следующих условий в вашем рабочем окружении.

Руководство по установке DPM#

Системные требования#

Условия установки DPM:

  1. Компьютер с установленной на нем системой Ansible 2.6+ (также целевой компьютер).

  2. На целевом компьютере должен быть настроен доступ по протоколу SSH до компьютера, на котором будет выполняться WildFly-приложение.

  3. Наличие на целевом компьютере:

    • скриптов развертывания DPM с настроенным окружением в папке env/$ENV_NAME/ (см. комментарии по настройкам в файле env/EXAMPLE);

    • дистрибутивов DPM.

  4. Настроенный сервер баз данных под управлением PostgreSQL версии 9.6.15. Необходимо настроить параметры, указанные в фале $ENV_NAME/all/common.yml :

    • dpm_db.name — имя базы данных;

    • dpm_db.user — имя пользователя с полными правами на сервер баз данных выше;

    • dpm_db_pass — пароль, как указано в файле $ENV_NAME/all/app_creds.yml.

  5. Настроенный сервер WF версии 17.0.1.Final c уставленной на сервере 64-битной средой Java версии 1.8.0_141.

    • Сервер следует установить в папку, путь к которой указывается в переменной wf_path в файле $ENV_NAME/dpm_main/common.yml.

    • Сервер WF следует зарегистрировать c помощью systemd с названием, указанным в переменной wf_service.

    • Следует создать WF management-пользователя.

Внимание. WF management-пользователя можно создать с помощью утилиты ${wf_path}/bin/add-user.sh. Имя пользователя указано в переменной wf_user/wf_pass в файле $ENV_NAME/dpm_main/app_creds.yml.

  1. Настроенное в файле конфигурации ${wf_path}/bin/standalone.conf значение переменной JAVA_OPTS. Значение переменной следует указывать для конкретной конфигурации сервера. Например, для сервера с 32 Гбайт RAM следует указать: JAVA_OPTS="-Xms1064m -Xmx20512m -XX:MetaspaceSize=1096M -XX:MaxMetaspaceSize=7256m -[Djava.net](http://Djava.net).preferIPv4Stack=true -XX:+UseG1GC -XX:MaxGCPauseMillis=700 -XX:InitiatingHeapOccupancyPercent=30 -XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=10 -XX:G1MaxNewSizePercent=70 -XX:MaxTenuringThreshold=10 -XX:ParallelGCThreads=5 -XX:ConcGCThreads=2"

  2. Опционально. Настроенный сервер Nginx любой актуальной версии.

  3. Рекомендуется дополнительно зашифровать все файлы app_creds.yml, выполнив в терминале команду:

ansible-vault encrypt env/$ENV_NAME/all/app_creds.yml --vault-id=/path/to/key 

В /path/to/key содержится ключ шифровки — любой string

Установка#

Дистрибутивы DPM

Перед установкой DPM в папке /tmp необходимо сохранить полученные WAR-файлы:

  • dpm-artifact-sync-service;

  • dpm-atlas-service;

  • dpm-delegated-service;

  • dpm-log-service;

  • dpm-mail-service;

  • dpm-processing-service;

  • dpm.

Запуск скриптов развертывания DPM

В этом разделе описано, как установить сервис DPM на целевой компьютер.

Для первоначального развертывания DPM:

  1. Откройте терминал на компьютере со скриптами развертывания.

  2. В окне терминала выполните команду: ansible-playbook -i env/$ENV_NAME/hosts tasks/dpm/deploy/main.yml --vault-id=/path/to/vault_file -e "dpm_version=1.1.1 dpm-mail-service=1.1.1 process_dpm_version=1.1.1 delegated_dpm_version=1.1.1 artifact_sync_version=1.1.1 dpm-atlas-service=1.1.1"

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

Внимание. Убедитесь, что версии сервисов соответствуют версиям дистрибутивов, сохраненных в папке /tmp.

ansible-playbook -i env/$ENV_NAME/hosts tasks/dpm/deploy/main.yml --vault-id=/path/to/vault_file -e "dpm-log-service=1.1.1"

Запустится установка сервиса.

Первый запуск DPM#

Для запуска DPM:

  1. Откройте браузер.

  2. В адресной строке перейдите по адресу http://<wf_ip>:<wf_port>/dpm/main/loginpage, где <wf_ip> — адрес целевого сервера, а <wf_port> — порт целевого сервера, на котором развернут сервер WildFly и установлен сервис DPM.

  3. На странице входа в систему укажите учетные данные службы каталогов LDAP, как указано в настройках вашего окружения (см. Условия установки DPM).

  4. Убедитесь, что запущены сервисы WildFly:

Внимание. Здесь везде <wf_ip> — адрес целевого сервера, а <wf_port> — порт целевого сервера, на котором развернут сервер WildFly и установлен сервис DPM

  • DPM Core. Перейдите по шаблону-ссылке http://<wf_ip>:<wf_port>/dpm/actuator/health

  • DPM Processing http://<wf_ip>:<wf_port>/processing/actuator/health

  • DPM Delegated service http://<wf_ip>:<wf_port>/delegate-service/actuator/health

  • Mail service http://<wf_ip>:<wf_port>/dpm-mail

Настройка Nginx

Веб-интерфейс сервиса DPM может устанавливаться на веб-сервер Nginx, что позволяет работать с сервисом DPM в браузере эффективнее. Для работы с веб-интерфейсом необходимо настроить конфигурацию Nginx.

Для настройки файла конфигурации Nginx:

  1. Откройте терминал.

  2. В окне терминала выполните команду: ansible-playbook -i env/$ENV_NAME/hosts tasks/nginx/deploy/main.yml --vault-id=/path/to/vault_file.

Внимание. Адрес расположения веб-интерфейса указан в переменной dpm_domain_name файла common.yml , расположенного в папке $ENV_NAME/all/.

  1. Откройте браузер, а затем в адресной строке перейдите по адресу, указанному в YML-файле, например: https://<адрес_вашего_компьютера.example>.

Внимание. Фактический адрес зависит от вашего окружения и настроек параметров, указанных в YML-файле.

Откроется веб-интерфейс сервиса DPM.

Перезапуск сервисов DPM, WildFly и Nginx#

Для перезапуска DPM (WildFly) или Nginx:

  1. Откройте терминал.

  2. В окне терминала выполните команду ansible-playbook -i env/$ENV_NAME/hosts tasks/\[ dpm \|\| nginx \]/restart/main.yml --vault-id=/path/to/vault_file.

Требования к окружению#

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

  • сервер баз данных;

  • сервер приложений WildFly.

Сервер баз данных#

Минимальные требования к аппаратному обеспечению

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

  • 16-ядерный CPU с частотой 2 ГГц;

  • 16 Гбайт RAM;

  • свободное дисковое пространство 100 Гбайт.

Минимальные требования к системному программному обеспечению

На сервере баз данных должно быть установлено ПО:

  • ОС Linux 3.10;

  • СУБД Postgre SQL 9.2.

На сервере баз данных необходимо создать:

  • базу данных dpm;

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

Сервер приложений#

Минимальные требования к аппаратному обеспечению

Для обеспечения корректной работы ПО АС необходимо, чтобы аппаратная конфигурация сервера приложений отвечала следующим требованиям:

  • 8-ядерный CPU с частотой 2 ГГц;

  • 25 Гбайт RAM;

  • свободное дисковое пространство 50 Гбайт.

Требования к системному программному обеспечению

Перед установкой DPM на сервере приложений необходимо выполнить действия:

  1. Установите ПО:

    • ОС Linux;

    • WildFlfy 10.1.0;

    • PostgreSQL 9.2.

  2. Установите DPM.

  3. Настройте DPM.

Требования к системному программному обеспечению

На рабочем месте администратора и пользователя должен быть установлен один из браузеров:

  • Google Chrome (только для сред Windows и Mac);

  • Yandex Browser;

  • Safari (только для среды Mac).

Руководство по установке Quality Gates#

Системные требования#

Условия установки QGM

Прежде чем приступить к установке компонента <<Инструмент управления поставками дистрибутивов>> (QGM), проверьте соблюдение следующих условий в вашем рабочем окружении:

  • Компьютер с установленной системой Ansible 2.6+ (далее также — целевой компьютер);

  • На целевом компьютере должен быть настроен доступ по протоколу SSH до компьютера, на котором будет выполняться WildFly-приложение;

  • Наличие на целевом компьютере:

    • скриптов развертывания QGS с настроенным окружением в папке env/$ENV_NAME/ (см. комментарии по настройкам в файле env/EXAMPLE);

    • дистрибутивов QGS.

  • Настроенный сервер баз данных под управлением PostgreSQL версии 11.0+. Необходимо настроить параметры, указанные в файле $ENV_NAME/all/common.yml:

    • qgm_db.name— имя базы данных;

    • qgm_db.user — имя пользователя с полными правами на сервер баз данных выше;

    • qgm_db_pass — пароль, как указано в файле $ENV_NAME/all/app_creds.yml.

  • Настроенный сервер WF версии 17.0.1.Final c установленной 64-битной средой Java версии1.8.0_141. Сервер должен быть:

    • установлен в папку, путь к которой указывается в переменной wf_path в файле $ENV_NAME/qgm_main/common.yml;

    • зарегистрирован c помощью systemd с названием, указанным в переменной wf_service.

Должен быть создан WF management-пользователь.

Внимание. WF management-пользователя можно создать с помощью утилиты ${wf_path}/bin/add-user.sh. Имя пользователя указано в переменной wf_user/wf_pass в файле $ENV_NAME/qgm_main/app_creds.yml.

  • настроенное в файле конфигурации ${wf_path}/bin/standalone.conf значение переменной JAVA_OPTS. Значение переменной следует указывать для конкретной конфигурации сервера. Например, для сервера с 32 Гбайт RAM следует указать: JAVA_OPTS= "-Xms1064m -Xmx20512m -XX:MetaspaceSize=1096M -XX:MaxMetaspaceSize=7256m -Djava.net.preferIPv4Stack=true -XX:+UseG1GC -XX:MaxGCPauseMillis=700 -XX:InitiatingHeapOccupancyPercent=30 -XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=10 -XX:G1MaxNewSizePercent=70 -XX:MaxTenuringThreshold=10 -XX:ParallelGCThreads=5 -XX:ConcGCThreads=2";

  • настроенный сервер Nginx любой актуальной версии (опционально);

  • рекомендуется дополнительно зашифровать все файлы app_creds.yml, выполнив в терминале команду:

ansible-vault encrypt env/$ENV_NAME/all/app_creds.yml --vault-id=/path/to/key 

В /path/to/key содержится ключ шифровки — любой string

Установка#

Дистрибутивы QGM

Перед установкой QGS в папке /tmp необходимо сохранить полученный WAR-файл "qgm".

Запуск скриптов развертывания QGM

В этом разделе описано, как установить сервис QGM на целевой компьютер.

Для первоначального развертывания QGM выполните следующие действия:

  1. Откройте терминал на компьютере со скриптами развертывания.

  2. В окне терминала выполните команду: ansible-playbook -i env/$ENV_NAME/hosts tasks/qgm/deploy/main.yml --vault-id=/path/to/vault_file -e "qgm_version=1.2.22".

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

Внимание. Убедитесь, что версии сервисов соответствуют версиям дистрибутивов, сохраненных в папке /tmp: ansible-playbook -i env/$ENV_NAME/hosts tasks/qgm/deploy/main.yml --vault-id=/path/to/vault_file -e "qgm-version=1.1.1".

Запустится установка сервиса.

Первый запуск QGM#

Для запуска QGM выполните следующие действия:

  1. Откройте браузер.

  2. В адресной строке перейдите по адресу http://<wf_ip>:<wf_port>/qgm/ui/login, где <wf_ip> — адрес целевого сервера, а <wf_port> — порт целевого сервера, на котором развернут сервер WildFly и установлен сервис QGM.

  3. На странице входа в систему укажите учетные данные службы каталогов LDAP, как указано в настройках вашего окружения (см. раздел Условия установки QGM).

  4. Убедитесь, что запущены сервисы WildFly:

Внимание. Здесь везде <wf_ip> — адрес целевого сервера, а <wf_port> — порт целевого сервера, на котором развернут сервер WildFly и установлен сервис QGM.

  1. В QGM перейдите по шаблону-ссылке http://<wf_ip>:<wf_port>/qgm/actuator/health.

Настройка Nginx

Веб-интерфейс сервиса QGM может устанавливаться на веб-сервер Nginx, что позволяет работать с сервисом QGM в браузере эффективнее. Для работы с веб-интерфейсом необходимо настроить конфигурацию Nginx.

Для настройки файла конфигурации Nginx выполните следующие действия:

  1. Откройте терминал.

  2. В окне терминала выполните команду: ansible-playbook -i env/$ENV_NAME/hosts tasks/nginx/deploy/main.yml --vault-id=/path/to/vault_file.

Внимание. Адрес расположения веб-интерфейса указан в переменной qgm_domain_name файла common.yml , расположенного в папке $ENV_NAME/all/

  1. Откройте браузер, а затем в адресной строке перейдите по адресу, указанному в YML-файле, например: https://<адрес_вашего_компьютера.example>.

Внимание. Фактический адрес зависит от вашего окружения и настроек параметров, указанных в YML-файле

Откроется веб-интерфейс сервиса QGM.

Перезапуск сервисов QG, WildFly и Nginx#

Для перезапуска QG (WildFly) или Nginx выполните следующие действия:

  1. Откройте терминал.

  2. В окне терминала выполните команду:

ansible-playbook -i env/$ENV_NAME/hosts tasks/\[ qgm \|\| nginx \]/restart/main.yml --vault-id=/path/to/vault_file

Требования к окружению#

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

  • сервер баз данных;

  • сервер приложений WildFly.

Сервер баз данных#

Минимальные требования к аппаратному обеспечению

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

  • 16-ядерный CPU с частотой 2 ГГц;

  • 16 Гбайт RAM;

  • свободное дисковое пространство 100 Гбайт.

Минимальные требования к системному программному обеспечению

На сервере баз данных должно быть установлено следующее ПО:

  • ОС Linux 3.10;

  • СУБД Postgre SQL 11.0+.

На сервере баз данных необходимо создать:

  • базу данных qgm;

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

Сервер приложений#

Минимальные требования к аппаратному обеспечению

Для обеспечения корректной работы ПО АС необходимо, чтобы аппаратная конфигурация сервера приложений отвечала следующим требованиям:

  • 8-ядерный CPU с частотой 2 ГГц;

  • 25 Гбайт RAM;

  • свободное дисковое пространство 50 Гбайт.

Требования к системному программному обеспечению

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

  1. Установите следующее ПО:

    • ОС Linux;

    • WildFlfy 10.1.0;

    • PostgreSQL 11.0+.

  2. Установите QG.

  3. Настройте QG.

Требования к системному программному обеспечению

На рабочем месте администратора и пользователя должен быть установлен один из следующих браузеров:

  • Google Chrome (только для сред Windows и Mac);

  • Yandex Browser;

  • Safari (только для среды Mac).