Когда и как новый подчиненный узел jenkins получает право на выполнение заданий на нем? - PullRequest
0 голосов
/ 15 января 2020

У нас есть следующие настройки для наших главных / подчиненных узлов jenkins: один статус c и фиксированный мастер (никакие задания не будут выполняться на мастере) и динамические c раскрутка рабов, а также мы прекращаем AWS EC2 jenkins рабов, если он простаивает в течение 30 минут.

Когда ему нужно выполнить новое задание, он предоставит ведомое устройство на основе конфигурации, определенной в Управление Jenkins ---> Настройка системы ---> Облако ---> Amazon EC2, В нем также есть некоторый раздел сценария инициализации для установки и настройки в соответствии с нашими потребностями.

Когда новый узел запускается, первоначально мы видим его в автономном состоянии на следующей странице: https://jenkins.xxxxx.xxxxx.com/computer/

Во время выполнения сценария инициализации (который в нашем случае занимает ~ 10 минут для выполнения всех упомянутых команд) этому новому узлу назначается задание jenkins, которое ожидало в очереди сборки, и люди видят следующее сообщение в выводе консоли задания и прерывают сборки, думая, что задание было назначено автономному ведомому устройству / узлу, которого больше нет

Все еще ожидает задания по расписанию

'EC2 (подчиненный Jenkins) - подчиненный jenkins-dev- docker (i-xxxxxxxxx)' находится в автономном режиме; «EC2 (Jenkins Slave) - jenkins-dev- docker -slave (i-xxxxxxxxxx)» находится в автономном режиме

Есть ли способ указать нам конфигурацию, которая ожидает до подчиненного узла / Агент готов ( Агент успешно подключен и подключен к сети ) для выполнения заданий вместо того, чтобы быть распределенным до завершения выполнения команд сценария инициализации?

Примечание: - Все эти являются конвейерными заданиями и linux рабами / узлами. Версия Jenkins: 2.190.1

Пожалуйста, дайте мне знать, если кому-то понадобятся какие-либо другие детали.

С уважением, Паван

1 Ответ

0 голосов
/ 15 января 2020

По нашему опыту, задание или этап, намеченные на ярлыке, будут ждать, пока на этом ярлыке не появится хотя бы один ведомый. В это время он начнет выполняться на этом ярлыке. Если ведомые устройства недоступны, задание / этап будет ждать вечно, если на задании / этапе не указано время ожидания. Мы можем запустить конвейер, заставить его ждать метку, раскрутить раба, назначить ему метку, и задание начнет выполняться там.

Так что ваш опыт здесь сильно отличается от нашего.

Возможно, ваш подчиненный был в сети (и поэтому на нем было запланировано задание), но затем по какой-то причине он отключился. В этом случае вы можете следить за его состоянием или поиграть с настройками MAX_DURABILITY.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...