it-swarm.com.de

Jenkins Pipeline: Agent gegen Knoten?

Was ist der Unterschied zwischen einem Agenten und einem Knoten in einer Jenkins-Pipeline? ?

Ich habe diese Definitionen gefunden:

  • node : Die meisten Arbeiten, die eine Pipeline ausführt, werden im Kontext eines oder mehrerer deklarierter Knotenschritte ausgeführt.
  • agent : Die agent-Direktive gibt an, wo die gesamte Pipeline oder eine bestimmte Phase in der Jenkins-Umgebung ausgeführt wird, je nachdem, wo die agent-Direktive platziert ist.

Beide werden also zur Ausführung von Pipelineschritten verwendet. Aber wann welche verwenden?

105
Matthias M

Die einfache Antwort lautet: Agent ist für deklarativ Pipelines und Knoten ist für skriptgesteuert Pipelines.

In deklarativen Pipelines wird mit der Direktive Agent angegeben, auf welchem ​​Agent/Slave der Job/Task ausgeführt werden soll. Mit dieser Anweisung können Sie nur angeben, wo die Aufgabe ausgeführt werden soll, welcher Agent, Slave, Label oder Docker-Image.

Andererseits kann in geskripteten Pipelines der Schritt node zum Ausführen eines Skripts/Schritts auf einem bestimmten Agenten, Label oder Slave verwendet werden. Der Schritt Knoten verwendet optional den Agenten- oder Markennamen und anschließend einen Abschluss mit Code, der auf diesem Knoten ausgeführt werden soll.

deklarative und skriptbasierte Pipelines (Bearbeitung anhand des Kommentars):

  • deklarative Pipelines ist eine neue Erweiterung der Pipeline DSL (es ist im Grunde ein Pipelineskript mit nur einem Schritt, einem Pipelineschritt mit Argumenten (Direktiven genannt), diese Direktiven sollten einer bestimmten Syntax folgen Dieses neue Format ist strenger und sollte daher für Neulinge in der Pipeline einfacher sein, eine grafische Bearbeitung ermöglichen und vieles mehr.
  • Skript-Pipelines ist der Fallback für erweiterte Anforderungen.
115
Jon S