Jenkins 管道:代理与节点?
Jenkins pipeline: agent vs node?
jenkins 管道中的 agent 和 node 有什么区别?
我找到了那些定义:
- Node:管道在一个或多个声明的节点步骤的上下文中执行大部分工作。
- Agent: agent 指令指定整个 Pipeline 或特定阶段将在 Jenkins 环境中执行的位置,具体取决于放置 agent 指令的位置。
因此两者都用于执行流水线步骤。但是什么时候使用哪一个呢?
简单的答案是,Agent 用于 declarative 管道,node 用于 脚本 管道。
在声明性管道中,agent 指令用于指定要在哪个 agent/slave 上执行 job/task。这个指令只允许你指定任务执行的位置,哪个agent,slave,label或者docker image.
另一方面,在脚本化管道中,节点步骤可用于在特定代理、标签、从站上执行script/step。 node 步骤可选地采用代理或标签名称,然后是包含要在该节点上执行的代码的闭包。
声明式和脚本化管道(根据评论编辑):
- declarative pipelines是管道DSL的新扩展(它基本上是一个只有一个步骤的管道脚本,一个带有参数的管道步骤(称为指令),这些指令应该遵循特定的语法。要点这种新格式的一个优点是它更严格,因此对于管道新手来说应该更容易,允许图形编辑等等。
- scripted pipelines 是高级要求的回退。
jenkins 管道中的 agent 和 node 有什么区别?
我找到了那些定义:
- Node:管道在一个或多个声明的节点步骤的上下文中执行大部分工作。
- Agent: agent 指令指定整个 Pipeline 或特定阶段将在 Jenkins 环境中执行的位置,具体取决于放置 agent 指令的位置。
因此两者都用于执行流水线步骤。但是什么时候使用哪一个呢?
简单的答案是,Agent 用于 declarative 管道,node 用于 脚本 管道。
在声明性管道中,agent 指令用于指定要在哪个 agent/slave 上执行 job/task。这个指令只允许你指定任务执行的位置,哪个agent,slave,label或者docker image.
另一方面,在脚本化管道中,节点步骤可用于在特定代理、标签、从站上执行script/step。 node 步骤可选地采用代理或标签名称,然后是包含要在该节点上执行的代码的闭包。
声明式和脚本化管道(根据评论编辑):
- declarative pipelines是管道DSL的新扩展(它基本上是一个只有一个步骤的管道脚本,一个带有参数的管道步骤(称为指令),这些指令应该遵循特定的语法。要点这种新格式的一个优点是它更严格,因此对于管道新手来说应该更容易,允许图形编辑等等。
- scripted pipelines 是高级要求的回退。