Jenkins Job для создания конфигурационного дистрибутива#

Данный подраздел подготовки окружения относится только к разделу Установка с помощью Jenkins.

Создание Jenkins job kafka_config_create#

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

  2. Выбрать 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-репозитория, содержащего скрипты;

  • Заполнить параметр «Credentials», в параметре указать ваши сredentials с правами на чтение;

  • В параметре «Branches to build» выбрать ветку, в которой находятся скрипты;

  • В параметре «Script Path» указать путь до groovy-скрипта Pipeline/kafka_config_create.groovy;

  • Убедиться, что НЕ стоит галочка Lightweight checkout.

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

Pipeline_create

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

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

Now

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

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

Params

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

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

  • ansible_version — указание Jenkins Tool с необходимой версией Ansible. Конкретное значение необходимо получить у администратора Jenkins.

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

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

  3. Появится страница нужного Jenkins job для создания конфигурационных дистрибутивов со всем списком настраиваемых параметров.

Настраиваемые параметры Jenkins job kafka_config_create#

  • majorVersion — мажорная версия создаваемого конфигурационного дистрибутива. Пример полный версии дистрибутива — ${majorVersion}.001.00-00;

  • nexusUrl — ссылка на пространство в Nexus, куда будет опубликован созданный конфигурационный дистрибутив после выполнения Jenkins job;

  • nexusCred — Jenkins Username with Password credential ID для выкачивания дистрибутива. При задании параметра secman_url — полный путь в HashiCorp Vault до имени пользователя и пароля. Например: {Jenkins *Vault App Role credential* ID для получения секретов из HashiCorp Vault}|path/to/nexus:{user},{password};

  • secman_url — URL для подключения к HashiCorp Vault;

  • ssl_verify — проверка, являются ли сертификаты HashiCorp Vault/Nexus доверенными. Значение по умолчанию true;

  • rebuildVersion — версия конфигурационного дистрибутива для пересборки, например D-10.123.00 (пусто, если выпускается новый релиз);

  • jenkinsSlaveNode — выбор Jenkins Slave для сборки;

  • emailTo — список адресов электронной почты для отправки результатов работы job (письмо исполнителю Jenkins job упадет автоматически);

  • kafkaConfig — нужная конфигурация topics и ACL.

Пример конфигурации EVTD для установки (указывается в параметре kafkaConfig)

kafka_topics:
  list:
    - name: test1 # с дефолтными параметрами
    - name: test2 # с указанием настроек
      replicationFactor: 3
      partitions: 5
      configs: # изменение конфигурации на уровне topic
        - cleanup.policy=compact
        - max.message.bytes=10485760

kafka_acls:
  - principal: CN=fqdn.foohost.summer,C=RU
    producer: true # операции Write и Describe на topics и Create на кластер
    topics: singleTopic
  - principal: CN=fqdn.foohost.west,C=RU
    consumer: true # операции Read и Describe на topics и Read на группу
    topics: monitoringOutput,orphanOutput
    groups: filters # имена групп для подключения (обязательно для consumer, можно указать '*')

Со всеми изменяемыми настройками компонента можно ознакомиться в разделе Пример заполненного файла vars.yml.