Jenkins 管道:代理是否需要使用 Jenkinsfile?

Jenkins Pipeline: Are agents required to utilize Jenkinsfile?

我正在研究 Jenkins 管道的使用(特别是使用 Jenkinsfile)。我的实施上下文是我正在使用 Chef 部署 Jenkins 实例。此部署的一部分可能包括一些种子作业,这些作业将从源代码控制 (Jenkinsfile) 中提取作业配置,以通过 Chef 自动创建我们的构建作业。

我已经研究了两者的 Jenkins 文档 Pipeline as well as Jenkinsfile,在我看来,除了 Jenkins Master 之外,还需要配置和设置 Jenkins 管道代理。

我理解正确吗? Jenkins 代理必须存在才能使用 Jenkins Pipeline 的 Jenkinsfile 吗? Jenkinsfile 文档中的这一行让我相信这是真的:

Jenkinsfile (Declarative Pipeline)
pipeline {
    agent any

    stages {
        stage('Build') {
            steps {
                echo 'Building..'
            }
        }
        stage('Test') {
            steps {
                echo 'Testing..'
            }
        }
        stage('Deploy') {
            steps {
                echo 'Deploying....'
            }
        }
    }
}

The Declarative Pipeline example above contains the minimum necessary structure to implement a continuous delivery pipeline. The agent directive, which is required, instructs Jenkins to allocate an executor and workspace for the Pipeline.

提前感谢 Jenkins 的任何指导!

管道的“agent”部分是必需的,但这并不意味着除了您的主人之外,您还需要有一个外部代理。如果您只有主服务器,则此管道将在主服务器上执行。如果您有其他可用的代理,管道将在您 运行 管道时恰好可用的代理上执行。

如果你进入 Manage Jenkins -> Manage Nodes and Clouds,你可以看到 'Master' 本身被视为默认节点之一。使用声明格式 agent any 表示任何可用代理(包括 'Master' 以及节点配置,请参见下文)。

如果您配置任何新节点,则可以将其视为管道中的新代理 agent any 可以替换为 agent 'Node_Name'

你可以参考这个,它简要地给出了Agent、Node和Slave的提示。