Frage Sagen Sie Jenkins, dass er ein bestimmtes Projekt auf einem bestimmten Slave-Knoten ausführen soll


Wie kann ich Jenkins sagen, dass er ein bestimmtes Projekt auf einem bestimmten Slave ausführen soll?

Ich habe einen Jenkins-Master-Knoten und einen Slave-Knoten eingerichtet, den ich zum Staging einer Anwendung verwenden möchte. Aber ich kann nicht herausfinden, wie man das Projekt so konfiguriert, dass es auf dem Slave-Knoten läuft, den ich erstellt habe.


71
2018-02-13 22:43


Ursprung


stackoverflow.com/questions/9214501/ ... - kaji


Antworten:


Setzen Sie in Ihrer Jobkonfiguration das Kontrollkästchen "Einschränken, wo dieser Job ausgeführt werden kann" und geben Sie den Namen Ihres Slaves an.

Wenn Sie später weitere Slaves hinzufügen, können Sie für jeden Slave Labels festlegen und diese in Ihren Jobkonfigurationen angeben.

Siehe diese Referenzdokumentation:


72
2018-02-20 06:59



Vielen Dank. Ich habe eine Weile gebraucht, bis ich deine Antwort gefunden habe. Es hätte zu dieser Seite hinzugefügt werden sollen wiki.jenkins-ci.org/display/JENKINS/Distributed+builds - Surasin Tancharoen


Wenn Sie einen Pipeline-Job ausführen, möchten Sie dem Slave-Knoten (oder dem Agenten, der jetzt anscheinend aufgerufen wird) zunächst eine Bezeichnung (z. B. "Slave") hinzufügen.

Im Pipelineskript geben Sie dann die Bezeichnung an, auf der der Job ausgeführt wird:

Deklarative Pipeline:

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

Skript-Pipeline:

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

Dieser Job wird jetzt auf jedem Knoten mit der Bezeichnung 'Slave' ausgeführt. Wenn der Job nur auf diesem bestimmten Slave ausgeführt werden soll, verwenden Sie das Label nicht erneut. Und natürlich muss das Label nicht "Sklave" sein; es kann sein, was immer du willst.

Aktualisieren:

Wenn Ihr Knoten in der Skriptpipeline "My Node" heißt, können Sie Folgendes tun:

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

Wenn Sie möchten, dass der Codeblock nur auf diesem bestimmten Knoten ausgeführt wird, ist dies nützlich. Die Verwendung von Labels ist jedoch flexibler und erleichtert das Hinzufügen von Knoten zur gemeinsamen Nutzung der Workload.


8
2017-12-29 03:59



Das war so schwer zu finden, die Dokumentation für Skriptsyntax stirbt zugunsten deklarativer, ich kann noch nicht migrieren, also danke! - Mitchell Currie


Wenn Sie Knoten / Label als Parameter verwenden möchten, installieren Sie NodeLabel Parameter Plugin


5
2017-10-04 14:32