Скажіть Дженкінсу запустити конкретний проект на певному рабовласницькому вузлі


87

Як мені сказати Дженкінсу запустити конкретний проект на конкретному рабі?

Я створив головний вузол Дженкінса і підлеглий вузол, який я хочу використовувати для постановки програми. Але я не можу зрозуміти, як налаштувати проект для запуску на підлеглому вузлі, який я створив.


Відповіді:


84

Установіть прапорець "Обмежити, де цю роботу можна запустити" у конфігурації вашої роботи та вкажіть ім'я вашого раба.

Якщо пізніше ви додасте більше рабів, ви можете встановити мітки для кожного підлеглого та вказати їх у своїх конфігураціях завдань.

Дивіться цю довідкову документацію:


Дякую. Я досить довго користувався, перш ніж знайшов вашу відповідь. Це слід було додати на цю сторінку wiki.jenkins-ci.org/display/JENKINS/Distributed+builds
Surasin Tancharoen

16

Якщо ви працюєте з трубопровідним завданням, спочатку потрібно додати мітку (наприклад, "підлеглий") у підлеглий вузол (або агент, як, здається, називається зараз).

Потім у сценарії конвеєра ви вказуєте мітку, на якій виконується завдання:

Декларативний трубопровід:

pipeline {
    agent {label 'slave'}
    stages {
        ...
    }
}

Сценарій трубопроводу:

node (label: 'slave') {
    ...
}

Ця робота тепер буде виконуватись на будь-якому вузлі з міткою 'slave'. Якщо ви хочете, щоб робота виконувалася саме на цьому підлеглому, не використовуйте етикетку повторно. І звичайно, етикетка не повинна бути "рабом"; це може бути все, що завгодно.

Оновлення:

У сценарії сценарію, якщо ваш вузол названий "Мій вузол", ви також можете це зробити:

node ('My Node') {
    ...
}

Якщо ви хочете, щоб блок коду працював лише на цьому конкретному вузлі, це корисно. Однак використання міток є більш гнучким і може полегшити додавання вузлів для розподілу навантаження.


Це було так важко знайти, документація для сценарію синтаксису вмирає на користь декларативного, я не можу ще мігрувати, тому дякую!
Мітчелл Керрі

7

Якщо ви хочете використовувати Node / Label в якості параметра, то встановіть плагін для параметра NodeLabel


Зауважте, що якщо для роботи вибираєте параметр "Вузол", і ви хочете викликати його з Groovy, вам потрібно створити спеціальний параметр: params += new org.jvnet.jenkins.plugins.nodelabelparameter.LabelParameterValue('testServer', testServerLabel);(замість звичайного StringParameterValue).
Nux
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.