Di 'a Jenkins di eseguire un progetto specifico su un particolare nodo slave


87

Come faccio a dire a Jenkins di eseguire un progetto specifico su uno schiavo in particolare?

Ho impostato un nodo master Jenkins e un nodo slave che desidero utilizzare per la gestione temporanea di un'applicazione. Ma non riesco a capire come configurare il progetto per l'esecuzione sul nodo slave che ho creato.


Risposte:


84

Impostare la casella di controllo "Limita dove è possibile eseguire questo lavoro" nella configurazione del lavoro e specificare il nome dello slave.

Se si aggiungono altri slave in un secondo momento, è possibile impostare etichette per ogni slave e specificare quelle nelle configurazioni del lavoro.

Vedi questa documentazione di riferimento:


Grazie. Ho usato un po 'di tempo prima di trovare la tua risposta. Avrebbe dovuto aggiungere a questa pagina wiki.jenkins-ci.org/display/JENKINS/Distributed+builds
Surasin Tancharoen il

16

Se si sta eseguendo un processo Pipeline, è innanzitutto necessario aggiungere un'etichetta (ad esempio "slave") al nodo slave (o agente come sembra essere chiamato ora).

Quindi, nello script della pipeline, si specifica l'etichetta su cui viene eseguito il lavoro:

Pipeline dichiarativa:

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

Pipeline con script:

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

Questo lavoro ora verrà eseguito su qualsiasi nodo con l'etichetta "slave". Se si desidera solo eseguire il lavoro su questo particolare slave, non riutilizzare l'etichetta. E ovviamente l'etichetta non deve essere "schiava"; può essere quello che vuoi.

Aggiornare:

Nella pipeline con script, se il tuo nodo è denominato "Il mio nodo", puoi anche fare questo:

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

Se si desidera eseguire solo il blocco di codice su quel nodo particolare, questo è utile. Tuttavia, l'utilizzo delle etichette è più flessibile e può semplificare l'aggiunta di nodi per condividere il carico di lavoro.


Questo è stato così difficile da trovare, la documentazione per la sintassi con script sta morendo a favore del dichiarativo, non posso ancora migrare, quindi grazie!
Mitchell Currie,

7

Se si desidera utilizzare Node / Label come parametro, installare il plug-in parametri NodeLabel


Si noti che se si sceglie il parametro "Nodo" per un lavoro e si desidera chiamarlo da Groovy, è necessario creare un parametro speciale: params += new org.jvnet.jenkins.plugins.nodelabelparameter.LabelParameterValue('testServer', testServerLabel);(invece del solito StringParameterValue).
Nux
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.