Jenkins 管道: agent vs node?

标签 jenkins jenkins-pipeline

jenkins 管道中的代理节点有什么区别?

我找到了这些定义:

  • Node :管道在一个或多个声明的节点步骤的上下文中执行大部分工作。
  • Agent :代理指令指定整个管道或特定阶段将在 Jenkins 环境中执行的位置,具体取决于代理指令的放置位置。

因此两者都用于执行管道步骤。但什么时候使用哪一个呢?

最佳答案

简单的答案是,代理用于声明式管道,节点用于脚本化管道。

在声明式管道中,agent指令用于指定要在哪个代理/从属设备上执行作业/任务。该指令仅允许您指定任务在何处执行,哪个代理、从属、标签或 docker 镜像。

另一方面,在脚本化管道中,节点步骤可用于在特定代理、标签、从属设备上执行脚本/步骤。 节点步骤可以选择采用代理或标签名称,然后使用要在该节点上执行的代码的闭包。

声明式和脚本化管道(根据评论进行编辑):

  • declarative pipelines是管道 DSL 的一种新扩展(它基本上是一个只有一个步骤的管道脚本,一个带有参数(称为指令)的管道步骤,这些指令应该遵循特定的语法。这种新格式的要点是它更严格因此对于那些刚接触管道的人来说应该更容易,允许图形编辑等等。
  • scripted pipelines是高级要求的后备。

关于 Jenkins 管道: agent vs node?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42050626/

相关文章:

java - Firefox WebDriver : Failed to connect to binary

jenkins - 如何仅在 Jenkins 上为一个子模块执行包?

jenkins - 如何在构建后操作中设置多个选项 ->在 Jenkins 中构建其他项目?

git - Jenkins:使用来自另一个 repo 的 jenkinsfile 构建多分支管道

docker - Jenkins 管道/docker :Jenkins does not seem to be running inside a container

jenkins - 如何从管道作业访问 git 分支名称?

linux - Jenkins - 在中止主构建之前运行子构建

java - Maven 和 Jenkins : dependency error when building project

jenkins - 为 future 的日期安排 Jenkins 工作

c++ - Jenkinsfile 运行 qmake