Создание Jenkins Job для автоматической установки#
Содержимое дистрибутива ./EVTA-scripts-[version]-distrib.zip поместить в git-репозиторий.
Для корректной работы Jenkins Job необходимо:
получить доступ для скачивания дистрибутива компонента EVTA (учетные данные
nexus_user_cred);создать в Jenkins параметр типа Secret file с паролем от ansible vault.
Выбрать New Item для создания нового Jenkins Job:

2.1. Добавить название создаваемого Jenkins Job. Нельзя использовать в названии русские буквы, спецсимволы.
2.2. Выбрать Pipeline и нажать кнопку «ОК»:

2.3. Заполнить поля на появившейся странице в блоке Pipeline:
Изменить значение параметра «Definition» на Pipeline script from SCM;
Изменить значение параметра «SCM» на Git;
Заполнить параметр «Repository URL», в параметре указать путь до вашего git репозитория, содержащего скрипты установки (пункт 1);
Заполнить параметр «Credentials», в параметре указать ваши сredentials с правами на чтение;
В параметре «Branches to build» выбрать ветку, в которой находятся скрипты;
В параметре «Script Path» указать путь до groovy скрипта:
Pipeline/reactive_stream_adapter_deploy_vm.groovy – для установки на ВМ;
Pipeline/reactive_stream_adapter_deploy.groovy – для установки в OS;
Убедиться, что НЕ стоит галочка Lightweight checkout.
Пример заполнения параметров:

Сохранить получившийся Jenkins Pipeline.
На появившейся странице в меню боковой панели выбрать «Собрать сейчас» — запустится первоначальная сборка:

После запуска сборки необходимо обновить страницу.
Выбрать в меню боковой панели «Собрать с параметрами»:

Заполнить следующие параметры на появившейся странице:
jenkins_slave— имя агента Jenkins для сборки;ansible_version— название Jenkins Tool, отвечающий за используемую версию Ansible.
Нажать кнопку «Собрать».
Обновить страницу и после окончания работы Jenkins Job снова нажать «Собрать с параметрами».
Появится страница со всем списком настраиваемых параметров.
Параметры для установки на ВМ#
job_config_renew— отвечает за обновление Jenkins Job. При установке приложения должен быть выключен (false). Для обновления текущих параметров и сохранения значений по умолчанию должен быть включен (true);inventory– имя inventory для установки;nexusUrl– ссылка на конфигурационный дистрибутив (при отсутствии – оставить поле пустым). Создание конфигураций описано в разделе Jenkins Job для создания конфигурационного дистрибутива;nexusDistribUrl– ссылка на дистрибутив reactive_stream_adapter;playbook– выбор необходимого сценария установки;tags– cписок тегов. При пустом значении выполняется полная установка компонента:run_only – при указании появляется выбор адаптеров (для дальнейших действий) без указания - на все адаптеры
adapter_already_installed – выполняется установка и запуск EVTA из конфигурационного дистрибутива без выкачивания дистрибутива EVTA из
nexusDistribUrl;backup – создание backup;
backup_remove – удаление backup;
backup_restore – восстановление из backup;
custom_files – генерация кастомных файлов;
distribute – распаковка дистрибутива
nexusDistribUrl;install – запуск блока установки;
restart – перезапуск сервиса;
start – запуск сервиса;
status — статус сервиса;
stop – остановка сервиса;
uninstall – удаление сервиса.
adapterList– выбор адаптера (при наличии тега run_only);install_all_hosts– отвечает за выполнение playbooks на всех серверах из выбранного inventory;only_on_host– отвечает за выполнение playbooks на выбранных серверах;jenkins_slave— выбор Jenkins Slave;ansible_branch— ветка скриптов развертывания;ansible_version— версия ansible. Например, значение ansible29;nexus_user_cred— Jenkins Username with Password credential ID для выкачивания дистрибутива. При заданииsecman_url– полный путь в HashiCorp Vault до имени пользователя и пароля. Например:{Jenkins *Vault App Role credential ID для получения секретов из HashiCorp Vault}|path/to/nexus:{user},{password}vault_cred— Jenkins secret file credential ID со строкой для расшифровки паролей (ansible vault). При заданииsecman_url– полный путь в HashiCorp Vault до пароля. Например:{Jenkins *Vault App Role credential* ID_1}|/path/to/vault:{password_1}, {Jenkins *Vault App Role credential* ID_2}|/path/to/vault:{password_2}В качестве пароля можно использовать не строку, а файл в base64 формате с ключом секрета, заканчивающимся на Base64. Например myVaultBase64.server_ssh_cred– Jenkins ssh key Credential ID для подключения к серверам, на которые устанавливается компонент. При задании параметраsecman_url— указать полный путь в Hashicorp Vault до секрета. Например:{Jenkins *Vault App Role credential* ID для получения секретов из Hashicorp Vault}|/.../KV/ssh:{user},{key},{passphrase}В качестве ключа можно использовать не строку, а файл в base64 формате с ключом секрета, заканчивающимся на Base64. Например myPrivateKeyBase64.secman_url— URL для подключения к HashiCorp Vault;jdk_tool— указание Jenkins Tool с нужной версией JDK;ssl_verify— проверка, являются ли сертификаты HashiCorp Vault/Nexus доверенными (по умолчанию включен,true);inventories_repo— репозиторий с inventory;inventories_branch— ветка репозитория;inventories_path- путь до inventories от корня репозитория.
Параметры для установки в OS#
job_config_renew— отвечает за обновление Jenkins Job. При установке приложения должен быть выключен (false). Для обновления текущих параметров и сохранения значений по умолчанию должен быть включен (true);inventory– имя inventory для установки;nexusUrl– ссылка на конфигурационный дистрибутив (при отсутствии – оставить поле пустым). Создание конфигураций описано в разделе Jenkins Job для создания конфигурационного дистрибутива;nexusHelmUrl– ссылка на helm chart установки компонента в OS. Для скачивания helm chart используется параметрnexus_user_cred;playbook– выбор необходимого сценария установки;tags– cписок тегов. При пустом значении выполняется установка или обновление EVTA:uninstall – удаление сервиса.
jenkins_slave— выбор Jenkins Slave;ansible_branch— ветка скриптов развертывания;ansible_version— версия ansible. Например, значение ansible29;nexus_user_cred— Jenkins username with password credential ID для выкачивания дистрибутива. При заданииsecman_url– полный путь в HashiCorp Vault до имени пользователя и пароля. Например:{Jenkins *Vault App Role credential* ID для получения секретов из HashiCorp Vault}|path/to/nexus:{user},{password}vault_cred— Jenkins secret file credential ID со строкой для расшифровки паролей (ansible vault). При заданииsecman_url– полный путь в HashiCorp Vault до пароля. Например:{Jenkins *Vault App Role credential* ID_1}|/path/to/vault:{password_1}, {Jenkins *Vault App Role credential* ID_2}|/path/to/vault:{password_2}В качестве пароля можно использовать не строку, а файл в base64 формате с ключом секрета, заканчивающимся на Base64. Например myVaultBase64;secman_url— URL для подключения к HashiCorp Vault;jdk_tool— указание Jenkins Tool с нужной версией JDK;ssl_verify— проверка, являются ли сертификаты HashiCorp Vault/Nexus доверенными (по умолчанию включен,true);ocCliVersion— версия утилиты oc;helmCliVersion— версия helm;inventories_repo— репозиторий с inventory;inventories_branch— ветка репозитория;inventories_path- путь до inventories от корня репозитория.
Успешным результатом работы Jenkins Job будет запущенный EVTA на серверах, указанных в inventory.
Процесс установки EVTA описан в разделе Установка с использованием Jenkins.