Jenkins基础教程(154)Jenkins构建配置从节点轴:Jenkins构建大法:多节点配置让你效率翻倍,告别单机苦等!

每次看着Jenkins任务排成长队,就像在热门奶茶店前苦等,你是否想过:要是能多开几个窗口同时点单该多好?

01 告别拥堵:Jenkins单机构建的痛点

每次手动打包部署到深夜,你是否也曾仰望星空思考:为啥不让Jenkins这个贴心小助手干得更聪明点?

想象一下,你刚刚把代码推送到Git仓库,Jenkins就像被按下了启动按钮,立刻开始工作。拉取最新代码、解决依赖关系、运行测试、打包部署—一气呵成

而你,只需要悠闲地品着咖啡,等待构建结果的通知。

但问题来了,当团队扩大、项目增多,你会发现Jenkins服务器开始气喘吁吁

一个接一个的构建任务排成长队,像极了早高峰的地铁站。iOS构建要等Android构建完成,后端服务构建又堵住了前端部署……

这种场景下,单机Jenkins已经成为了持续集成流程的瓶颈。

我经历过最夸张的一次,是一个微服务项目需要依次构建12个服务,每个服务平均构建时间8分钟,整整排队等了快两个小时!

正是这种痛苦,让我决心探索Jenkins的分布式构建能力,也就是主从节点架构。

“Jenkins的分布式构建可以让多台机器一起分担构建任务,大大缩短等待时间。”

02 Jenkins主从架构:让构建任务“多条腿走路”

什么是Jenkins的分布式构建?简单来说,就是让一个Jenkins主节点指挥多个从节点同时执行构建任务

想象一下,Jenkins主节点就像一位乐团指挥,而从节点就是不同的乐手。指挥负责分配乐谱(构建任务),每位乐手同时演奏自己的部分(执行构建),最终合奏出美妙的交响乐(完成持续集成)。

在这种架构中,标准的Jenkins安装包括Jenkins主节点。主节点将管理我们构建系统的所有任务。

主从架构的核心组件

  • 主节点(Master):负责调度作业、分配从节点并发送构建到从节点执行。它还将跟踪从节点的状态(离线或在线),从从节点检索构建结果,并在终端输出中显示它们。
  • 从节点(Slave/Agent):在从节点机器上,我们会安装一个名为代理的运行时程序。这个代理有能力在专用执行器中运行Jenkins的任务或主任务。
  • 执行器(Executor):节点上真正执行构建的线程/进程,一个节点可配置多个执行器。
  • 标签(Label):对节点按环境或能力分组(如linux、jdk11、docker),用于精准投递任务。

主从通信机制

主节点和Jenkins从节点之间的通信是双向的,并通过TCP/IP进行。

启动从节点有两种主要方式:通过SSH启动或通过JNLP(Java Web Start) 连接。

这种分布式架构的优势显而易见:我们可以有任意数量的代理节点或从节点,配置主节点来决定哪个任务或作业应该在哪个代理上运行。

03 步步为营:搭建你的第一个Jenkins从节点

理论说够了,现在让我们动手搭建一个Jenkins从节点!这个过程就像是给Jenkins主节点找帮手,让它从光杆司令变成拥有精兵强将的指挥官。

环境准备阶段

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

  • Jenkins服务器已经启动并运行,可以使用
  • 另一台服务器用于从节点配置
  • Jenkins服务器和从服务器都在同一网络上连接
  • 在所有节点安装Java(推荐OpenJDK 11):sudo apt-get update && sudo apt-get install -y openjdk-11-jdk

从节点要求:

  • 尽量选择干净的节点
  • 同样需要支持Java构建相关的环境
  • 主从节点间需要支持免密通信
  • 不需要在从节点手动安装jenkins,由master节点自动进行控制
  • 需要有maven jdk git环境,用于后续构建

主从节点免密通信配置

做节点主从,我们就需要给参与构建的slave节点和master进行免密通信的配置,方便构建过程中的调度通信。

目标:实现master的jenkins用户—》免密连接slave的jenkins用户

在master机器上使用jenkins用户生成秘钥

$ su jenkins
# 进入当前目录下,查看是否已经有.ssh目录以及目录下的公私钥
$ cd ~
$ ls -a

# 如果不存在,则执行如下命令进行生成
$ ssh-keygen -t rsa
# 按3次回车

运行后会在当前用户的根目

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

值引力

持续创作,多谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值