Jenkins 架构
让我们修改一下我在上一个博客中向您解释的独立 Jenkins 架构,下图描绘了相同的架构。
image
单台 Jenkins 服务器不足以满足某些要求,例如:
- 有时您可能需要几个不同的环境来测试您的构建。单个 Jenkins 服务器无法完成此操作。
- 如果定期构建更大、更重的项目,则单个 Jenkins 服务器将无法简单地处理整个负载。undefined为了满足上述需求,引入了 Jenkins 分布式架构。
Jenkins 分布式架构
Jenkins使用主从架构管理分布式构建。在这种架构中,主站和从站通过 TCP / IP 协议进行通信。
Jenkins 主节点
您的主要 Jenkins 服务器是主节点。主节点的工作是处理:
- 调度构建作业。
- 将构建分派给实际执行的从节点。
- 监视从节点(可能根据需要使它们联机和脱机)。
- 记录并显示构建结果。
- Jenkins 的主节点也可以直接执行构建作业。
Jenkins 从节点
从节点是在远程计算机上运行的 Java 可执行文件。以下是 Jenkins 从节点的特点:
- 接收来自 Jenkins 主接点的请求。
- 从节点可以在各种操作系统上运行。
- 从节点的工作就是按照命令执行,包括执行主节点分配的构建作业。
- 您可以将项目配置为始终在特定的从节点或特定类型的从节点上运行,或者仅让 Jenkins 选择下一个可用的从节点。undefined下图是不言自明的。它由一个 Jenkins 主节点管理三个 Jenkins 从节点。
image
现在,让我们看一个示例,其中 Jenkins 用于在不同的环境中进行测试,例如:Ubuntu、MAC、Windows等。
如下图所示:
image
上图中执行以下功能:
- Jenkins 会定期检查 Git 存储库中是否有任何源代码更改。
- 每个构建都需要不同的测试环境,这对于单个Jenkins服务器是不可能的。为了在不同的环境中执行测试,Jenkins 使用了各种从节点,如图所示。
- Jenkins 主节点要求这些从节点执行测试并生成测试报告。
Jenkins 构建管道
它用于了解 Jenkins
当前正在执行的任务。通常,几位开发人员会同时进行几项不同的更改,因此了解哪些更改正在测试中,哪些更改正在排队中或哪些构建已损坏是很有用的。这是管道出现的地方。Jenkins
管道为您提供了测试范围的概述。在构建管道中,整个构建被细分为多个部分,例如单元测试、验收测试、打包、报告和部署阶段。管道阶段可以串行或并行执行,如果一个阶段成功,它将自动移至下一个阶段(因此具有“管道”名称的相关性)。下图显示了多个构建管道的外观。
image
希望你已经理解了理论概念。现在,让我们来体验一下动手的乐趣。
我将在 Jenkins 创建一个新作业,这是一个 自由式项目 。然而,还有 3 个可用选项。让我们看一下 Jenkins 中可用的构建作业的类型。
自由式项目:
自由式构建作业是通用构建作业,它提供了最大的灵活性。自由式构建作业是最灵活和可配置的选项,可用于任何类型的项目。设置相对简单,我们在此处配置的许多选项也出现在其他构建作业中。
多配置作业:
“多配置项目”(也称为“矩阵项目”)允许您在不同的环境上运行相同的构建作业。它用于在不同环境、不同数据库甚至不同构建机器上测试应用程序。
监视外部作业:
通过“监视外部作业”构建作业,您可以关注非交互式流程,例如 cron 作业。
Maven 项目:
“ maven2/3 项目”是专门适应 Maven 项目的构建工作。Jenkins 理解 Maven pom 文件和项目结构,并且可以使用从 pom
文件中收集的信息来减少设置项目所需的工作。
使用 Jenkins 创建一个构建
第 1 步: 在 Jenkins 界面主页中,选择 New Item 。
image
第 2 步: 输入名称并选择 Freestyle project 。
image
第 3 步:
在下一页中,您可以指定作业配置。您会很快发现,创建新项目时有许多可用设置。在这个配置页面上,您还可以选择添加构建步骤来执行额外的操作,例如运行脚本。我将执行一个
shell 脚本。
image
这将为您提供一个文本框,您可以在其中添加所需的任何命令。您可以使用脚本来运行各种任务,例如服务器维护、版本控制、读取系统设置等。我将使用它来运行简单的脚本。
image
第 4 步: 保存项目,您将进入项目概述页面。在这里,您可以查看有关项目的信息,包括其构建历史。
image
第 5 步: 点击左侧的 立即构建 开始构建。
image
第 6 步: 要查看更多信息,请在构建历史记录区域中单击该构建,随后您将进入带有构建信息概述的页面。
image
第 7 步: 控制台输出 链接页面对于详细检查作业结果特别有用。
image
第 8 步: 如果您回到 Jenkins 主页面,您将看到所有项目的概述及其信息,包括状态。
image
生成状态通过两种方式表示,一种是天气图标,另一种是彩色球。 天气图标特别有用,因为它可以在一张图像中显示多个版本的记录。
如上图所示,太阳代表着我的所有建造都是成功的。 球的颜色为我们提供了该特定构建的状态,在上图中,球的颜色为蓝色,这表示该特定构建成功了。