web-dev-qa-db-ja.com

ジェンキンスパイプライン:エージジェント対ノート?

Jenkinsパイプラインのエージェントノードの違いは何ですか? ?

私はそれらの定義を見つけました:

  • node :Pipelineが実行するほとんどの作業は、1つ以上の宣言されたノードステップのコンテキストで行われます。
  • agent :agentディレクティブは、agentディレクティブが配置されている場所に応じて、Pipeline全体または特定のステージがJenkins環境のどこで実行されるかを指定します。

そのため、両方ともパイプラインステップの実行に使用されます。しかし、いつどれを使うのか?

97
Matthias M

簡単な答えは、エージェント宣言型パイプライン用、ノードスクリプト型パイプライン用です。

宣言型パイプラインでは、agentディレクティブを使用して、ジョブ/タスクを実行するエージェント/スレーブを指定します。このディレクティブでは、タスクを実行する場所、エージェント、スレーブ、ラベル、またはドッカーイメージを指定することしかできません。

一方、スクリプト化されたパイプラインでは、nodeステップを特定のエージェント、ラベル、スレーブに対してスクリプト/ステップを実行するために使用できます。 nodeステップでは、オプションでエージェント名またはラベル名を取得してから、そのノードで実行されるコード付きのクロージャーを取得します。

宣言的およびスクリプト化されたパイプライン(コメントに基づいて編集):

  • 宣言的パイプラインはパイプラインDSLの新しい拡張です(それは基本的に1ステップだけのパイプラインスクリプト、引数を持つパイプラインステップ(ディレクティブと呼ばれます)、これらのディレクティブは特定の構文に従うべきです)。この新しいフォーマットはそれがより厳格であり、それ故にパイプラインに慣れていない人にとってはより簡単であるべきであり、グラフィカルな編集を可能にし、そしてその他多くを可能にする。
  • スクリプト化されたパイプラインは高度な要件の代替品です。
106
Jon S