概述

本文将介绍Jenkins架构中的分布式构建概念,并学习如何配置Jenkins主从架构。此外,我们将在Jenkins主节点上构建一个管道,以便在从节点上运行构建作业。

分布式构建

理想情况下,我们将安装标准Jenkins的机器作为Jenkins主节点。在从节点机器上,我们将安装一个名为代理的运行时程序。安装代理并不是标准的Jenkins安装,但这个代理将在JVM上运行。它有能力在专用执行器中运行Jenkins的任务或主任务:

分布式构建

我们可以有任意数量的代理节点或从节点。进一步地,我们可以配置主节点来决定哪个任务或作业应该在哪个代理上运行,以及可以有多少个执行代理。主节点和Jenkins从节点之间的通信是双向的,并通过TCP/IP进行

配置Jenkins主节点和从节点

标准的Jenkins安装包括Jenkins主节点,在这种设置中,主节点将管理我们构建系统的所有任务。如果我们正在处理多个项目,可以在每个项目上运行多个作业。有些项目需要使用特定的节点,这就需要使用从节点。

Jenkins主节点负责安排作业、分配从节点并发送构建到从节点执行。它还将跟踪从节点的状态(离线或在线),从从节点检索构建结果,并在终端输出中显示它们。在大多数安装中,将分配多个从节点来执行构建作业。

在开始之前,请确保我们为添加从节点准备了所有必要的前提条件:

  • Jenkins服务器已经启动并运行,可以使用
    • 另一台服务器用于从节点配置
    • Jenkins服务器和从服务器都在同一网络上连接

为了配置主服务器,我们将登录Jenkins服务器并遵循以下步骤。

首先,我们转到“管理Jenkins -> 管理节点 -> 新节点”以创建新节点:

管理节点

在下一个屏幕上,我们输入“节点名称”(slaveNode1),选择“永久代理”,然后点击“确定”

新节点

点击“确定”后,我们将被带到一个新表单页面,我们需要填写从节点的信息。考虑到从节点运行在Linux操作系统上,因此启动方法设置为“通过ssh启动代理”。

同样,我们添加相关细节,如名称、描述和执行器的数量。

我们通过点击“保存”按钮来保存工作。带有名称“slaveNode1”的“标签”将帮助我们在该从节点上设置作业:

新节点2

在从节点上构建项目

现在我们的主节点和从节点已准备好,我们将讨论在从节点上构建项目的步骤。

为此,我们从仪表板左上角点击“新建项目”。

接下来,我们需要在“输入项目名称”字段中输入我们项目的名称,并选择“管道项目”,然后点击“确定”按钮。

在下一页,我们输入“描述”(可选)并导航到“管道”部分。确保“定义”字段选择了“管道脚本”选项。

之后,我们将以下声明性管道脚本复制并粘贴到“脚本”字段:

node('slaveNode1'){
    stage('Build') {
        sh '''echo build steps'''
    }
    stage('Test') {
        sh '''echo test steps'''
    }
}

接下来,我们点击“保存”按钮。这将重定向到管道视图页面。

在左侧栏中,我们点击“立即执行”按钮来执行管道。在管道执行完成后,我们能看到管道视图:

ms管道控制台输出

我们可以通过点击构建编号来验证执行构建的历史记录。如上所示,当我们点击构建编号并选择“控制台输出”时,可以看到管道在我们的slaveNode1机器上运行。

结论

在这篇教程中,我们覆盖了Jenkins中分布式构建的概念,看到了Jenkins主节点如何调用从节点。此外,我们学习了如何设置Jenkins主从配置。最后,我们测试了从节点配置。