Создание Jenkins Job для автоматической установки#

  1. Содержимое дистрибутива ./EVTA-scripts-[version]-distrib.zip поместить в git-репозиторий.

Для корректной работы Jenkins Job необходимо:

  • получить доступ для скачивания дистрибутива компонента EVTA (учетные данные nexus_user_cred);

  • создать в Jenkins параметр типа Secret file с паролем от ansible vault.

  1. Выбрать New Item для создания нового Jenkins Job:

NewItem

2.1. Добавить название создаваемого Jenkins Job. Нельзя использовать в названии русские буквы, спецсимволы.

2.2. Выбрать Pipeline и нажать кнопку «ОК»:

NewItem_create

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.

Пример заполнения параметров:

Pipeline_create

  1. Сохранить получившийся Jenkins Pipeline.

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

Now

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

  2. Выбрать в меню боковой панели «Собрать с параметрами»:

Params

  1. Заполнить следующие параметры на появившейся странице:

  • jenkins_slave — имя агента Jenkins для сборки;

  • ansible_version — название Jenkins Tool, отвечающий за используемую версию Ansible.

  1. Нажать кнопку «Собрать».

  2. Обновить страницу и после окончания работы Jenkins Job снова нажать «Собрать с параметрами».

  3. Появится страница со всем списком настраиваемых параметров.

Параметры для установки на ВМ#

  • 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.