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

Я не могу временно исключить выполнение определенного задания на узле в группе меток.

jobA, jobB, jobC привязаны к запуску на общей метке nodeA, nodeB, nodeC имеют общую метку.

Предположим, что задание jobA начинает постоянно давать сбои на узле A.

Единственные решения, которые я вижу сегодня, — это перевод узла A в автономный режим для всех заданий или перенастройка многих заданий или узлов, что занимает довольно много времени. Мы используем JOB-DSL для настройки заданий, поэтому изменение конфигурации задания требует регистрации.

Идеальной ситуацией для нас была бы конфигурация на узле:
Исключить задание с именем: jobA

Есть ли какой-нибудь простой способ настроить, чтобы jobA временно запускался только на узле B и узле C, а jobB/C должен по-прежнему выполняться на всех узлах в целом по метке?


person ki_    schedule 22.12.2014    source источник


Ответы (4)


Создайте параметризованное задание для запуска некоторой конфигурации job-dsl. Сделайте один из параметров «Выбор», перечислив имена заданий, которые вы, возможно, захотите изменить.

Другой параметр выберет метку, определяющую узлы, на которых вы хотите запустить задание. (Вы можете иметь более одной метки на узле).

Затем сценарий job-dsl обновляет метку задания.
Этот отличный сценарий включает/отключает все задания в папке:

// "State" job parameter (choice, DISABLED|ENABLED)
def targetState = ('DISABLED'.equalsIgnoreCase(State))

// "Folder" job parameter (choice or free-text)
def targetFolderPath = Folder.trim() 

def folder = findFolder(jenkins, targetFolderPath)
println "Setting all jobs in '${folder.name}' to '${targetState}'"
for (job in folder.getAllJobs()) {
    job.disabled = targetState
    println "updated job: ${job.name}"
}
person Ed Randall    schedule 17.02.2015

вы также можете использовать плагин параметров NodeLabel в jobA. Используя этот плагин, вы можете определить узлы, на которых должно быть разрешено выполнение задания. Просто добавьте узел параметра и выберите все узлы, кроме nodeA. https://wiki.jenkins-ci.org/display/JENKINS/NodeLabel+Parameter+Plugin

person jussuper    schedule 17.02.2015

Для простого быстрого исключения то, что я думаю, исходный вопрос называется «Единственные решения, которые я вижу сегодня, это... перенастроить... задания или узлы», см. этот другой ответ: https://stackoverflow.com/a/29611255/598656

person user598656    schedule 11.01.2017

Чтобы прекратить использование узла с заданной меткой, можно просто изменить метку. Например. предположим, что этикетка

СТРОИТЕЛЬ

меняем метку на

-СТРОИТЕЛЬ

сохранит информацию для администратора, но любое задание, использующее BUILDER в качестве метки, не будет выбирать этот узел.

Чтобы разрешить выполнение задания на узле, вы можете изменить выбор узла на

BUILDER||-BUILDER

Полезная парадигма при перетасовке ярлыков.

ПРИМЕЧАНИЕ: задания по-прежнему могут выбирать с использованием предыдущего ярлыка в течение определенного периода времени.

person Steven the Easily Amused    schedule 15.05.2017