it-swarm.com.de

Weisen Sie Jenkins an, ein bestimmtes Projekt auf einem bestimmten Slave-Knoten auszuführen

Wie kann ich Jenkins anweisen, ein bestimmtes Projekt für einen bestimmten Slave auszuführen?

Ich habe einen Jenkins-Masterknoten und einen Slave-Knoten eingerichtet, den ich zum Staging einer Anwendung verwenden möchte. Ich kann jedoch nicht herausfinden, wie das Projekt für die Ausführung auf dem von mir erstellten Slave-Knoten konfiguriert werden soll.

94
Lorin Hochstein

Aktivieren Sie in Ihrer Jobkonfiguration das Kontrollkästchen "Beschrä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 Jobkonfigurationen angeben.

Siehe diese Referenzdokumentation:

90
gareth_bowles

Wenn Sie einen Pipeline-Job ausführen, möchten Sie zuerst dem Slave-Knoten (oder dem Agenten, wie er jetzt genannt zu werden scheint) eine Bezeichnung (z. B. 'Slave') hinzufügen.

Anschließend geben Sie im Pipeline-Skript 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 nun auf jedem Knoten mit der Bezeichnung 'Slave' ausgeführt. Wenn Sie nur möchten, dass der Job auf diesem bestimmten Slave ausgeführt wird, 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 den Namen "Mein Knoten" trägt, können Sie Folgendes tun:

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

Wenn der Codeblock nur auf diesem bestimmten Knoten ausgeführt werden soll, ist dies hilfreich. Die Verwendung von Beschriftungen ist jedoch flexibler und kann das Hinzufügen von Knoten zur gemeinsamen Nutzung der Arbeitslast erleichtern.

18
jpyams

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

7
Alex Okrushko