Дженкинс: задания, запускаемые для сборки из веб-хука GitHub, выполняются только на главном узле.

Первоначальная идея заключалась в том, чтобы запустить конкретную сборку на определенном узле (подчиненном) после слияния изменений с основной веткой на GitHub.

Конфигурация:

  1. Дженкинс (версия 2.226) находится на виртуальной машине Centos8 в VirtualBox;
  2. Настройка виртуальной машины: Java 11 OpenJDK (версия openjdk "11.0.5"), версия git 2.18.2

Проделанные шаги:

  1. Создал проект Jenkins (задание), который клонирует репозиторий Github и запускает на нем некоторые команды mvn;
  2. Настроил задание для запуска на новом узле, за исключением главного узла;

Как и ожидалось: задание выполняется правильно.

  1. Я использовал ngrok, чтобы открыть свой сервер Jenkins и сгенерировать на него внешнюю ссылку;
  2. Добавлена ​​полезная нагрузка 'http://bla.ngrok.io/github-webhook/. ссылка на GitHub;

Как и ожидалось: я могу успешно пропинговать сервер Jenkins.

  1. В Jenkins я настроил задание для запуска через SCM (включен «триггер ловушки GitHub для опроса GITScm»);
  2. Затем я иду на GitHub и фиксирую изменения в основной ветке.

Фактические результаты: сборка запускается, но только на главном узле.

  1. Я пометил главный узел как автономный, чтобы заставить запущенное задание выполняться на новом ведомом. Фактические результаты: Ничего не происходит.

  2. Я включил главный узел и снова попытался запустить задание. Фактические результаты: Ничего не происходит.

Я просмотрел файл jenkins.log, чтобы посмотреть, что происходит, и действие «ткнул сборку» записывается. После этого, вероятно, он ожидает выполнения сборки, но этого никогда не происходит. В конце запускается «Отбрасыватель периодических фоновых сборок».

2020-03-24 21:35:11.733+0000 [id=16]    INFO    o.j.p.g.w.s.DefaultPushGHEventSubscriber#onEvent: Received PushEvent for https://github.com/some/some_project from [someip] ⇒ http://blah.ngrok.io:8080/github-webhook/
2020-03-24 21:35:11.734+0000 [id=16]    INFO    o.j.p.g.w.s.DefaultPushGHEventSubscriber$1#run: Poked simple_build
2020-03-24 21:39:07.386+0000 [id=206]   INFO    hudson.model.AsyncPeriodicWork#lambda$doRun$0: Started Periodic background build discarder
2020-03-24 21:39:07.403+0000 [id=206]   INFO    hudson.model.AsyncPeriodicWork#lambda$doRun$0: Finished Periodic back

Я что-то пропустил?

Действие сборки триггера веб-перехватчика ограничено выполнением только на главном узле?


person Cristian M    schedule 25.03.2020    source источник
comment
Намного лучше, спасибо!   -  person Flimzy    schedule 25.03.2020


Ответы (1)


Мне удалось найти решение проблемы. Теперь сборки запускаются и выполняются на узле, который был установлен на экране конфигурации сборки.

Что я сделал, так это установил, что мастер-узел будет использоваться только тогда, когда это необходимо.

Для этого вам необходимо:

  • Перейдите в «Управление Jenkins> Настроить систему» ​​и в поле «Использование» выберите «Только задания сборки с выражением метки, соответствующим этому узлу».
  • Сохраните настройки.
person Cristian M    schedule 26.03.2020