Wie kann ich Jenkins anweisen, ein bestimmtes Projekt auf einem bestimmten Slave auszuführen?
Ich habe einen Jenkins-Masterknoten und einen Slave-Knoten eingerichtet, die ich zum Staging einer Anwendung verwenden möchte. Ich kann jedoch nicht herausfinden, wie das Projekt so konfiguriert wird, dass es auf dem von mir erstellten Slave-Knoten ausgeführt wird.
Antworten:
Aktivieren 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 Beschriftungen festlegen und diese in Ihren Auftragskonfigurationen angeben.
Siehe diese Referenzdokumentation:
quelle
Wenn Sie einen Pipeline-Job ausführen, möchten Sie dem Slave-Knoten (oder dem Agenten, wie er jetzt zu heißen scheint) zunächst eine Bezeichnung (z. B. "Slave") hinzufügen.
Anschließend geben Sie im Pipelineskript die Bezeichnung an, unter der der Job ausgeführt wird:
Deklarative Pipeline:
Skriptbasierte Pipeline:
Dieser Job wird nun auf jedem Knoten mit der Bezeichnung "Slave" ausgeführt. Wenn der Job nur auf diesem bestimmten Slave ausgeführt werden soll, verwenden Sie das Etikett nicht erneut. Und natürlich muss das Label nicht "Sklave" sein; es kann sein was immer du willst.
Aktualisieren:
Wenn Ihr Knoten in der Skript-Pipeline "Mein Knoten" heißt, können Sie dies auch tun:
Wenn der Codeblock nur auf diesem bestimmten Knoten ausgeführt werden soll, ist dies hilfreich. Die Verwendung von Beschriftungen ist jedoch flexibler und erleichtert das Hinzufügen von Knoten, um die Arbeitslast zu teilen.
quelle
Wenn Sie Node / Label als Parameter verwenden möchten, installieren Sie das NodeLabel-Parameter-Plugin
quelle
params += new org.jvnet.jenkins.plugins.nodelabelparameter.LabelParameterValue('testServer', testServerLabel);
(anstelle des üblichenStringParameterValue
).