Jenkins基础教程(181)Jenkins分布式构建之以远程服务方式启动Windows 从节点:Jenkins分布式构建:让Windows从节点为你“卖命”工作

Jenkins分布式构建:Windows从节点配置

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

第一章:认识Jenkins,你的构建管家

每次看着Jenkins构建队列排成长龙,你是否感觉时间像蜗牛一样爬行?别急,Windows从节点就是你的救星!

01 为什么你的Jenkins需要分布式构建?

记得我刚加入团队时,每次代码提交后的构建过程都像是一场漫长的等待游戏。开发小伙伴们常常围在咖啡机旁,不是真的想喝咖啡,只是在等待Jenkins完成构建。

直到有一天,后端服务代码量暴增,构建时间从10分钟延长到了30分钟,开发效率受到了严重影响。

正在大家焦头烂额之际,团队决定尝试Jenkins分布式构建,将任务分发到多台机器上执行。

结果令人震惊:原本30分钟的构建过程,被缩短到了8分钟! 这就是分布式构建的魔力。

想象一下,你是一家繁忙餐厅的主厨,订单源源不断涌来,你一个人切菜、炒菜、装盘肯定忙不过来。聪明的做法是聘请几位助手,每个人负责不同的工作站。

Jenkins的分布式构建也是类似的道理:

  • 主节点(Master) 作为指挥中心,负责调度任务、管理界面和记录结果
  • 从节点(Slave/Agent) 则负责实际执行构建任务

这种架构的好处不言而喻:构建时间大幅缩短,多个任务可以并行执行,不同环境的需求可以得到精准满足,而且整个系统更容易扩展。

在实际应用中,尤其是随着微服务的流行,企业通常有多套测试环境,同时可能有数十个构建请求,单节点的Jenkins不足以支撑这些需求,造成大量的构建请求等待和时间浪费。

使用分布式构建的典型场景:

  • 跨平台构建:你的Web应用需要在Linux上测试API,在Windows上测试IE兼容性
  • 资源密集型任务:庞大的代码库编译耗费大量CPU和内存
  • 并行测试需求:自动化测试套件非常庞大,需要分发到多个节点同时执行
  • 环境隔离:某些任务需要干净的环境,或者特定的软件配置

02 Jenkins分布式构建的核心架构

Jenkins的分布式构建架构由主节点(Master)和多个从节点(Slave)组成。理解这个架构是掌握分布式构建的关键。

主节点:大脑和中枢神经系统

Master节点是Jenkins的控制中心,它承担着以下关键职责:

  • 任务调度:决定哪个任务在哪个节点上运行
  • 界面管理:提供Web用户界面,方便用户与Jenkins交互
  • 构建记录:存储构建结果、日志和制品
  • 节点管理:管理所有Slave节点的状态和连接

主节点通常不直接执行繁重的构建任务,而是保持轻量专注,这样才能确保整个系统的稳定性。

从节点:四肢和肌肉

Slave节点(也称为Agent或从节点)是实际执行构建工作的机器,它们:

  • 可以分布在不同的物理机或虚拟机上
  • 能够运行在不同的操作系统上
  • 根据任务需求配置不同的工具和环境
  • 通过多种方式与Master节点通信

一个节点可以配置多个执行器(Executor),这决定了节点能够同时执行多少个构建任务。

标签(Label):精准匹配任务与节点

标签是Jenkins分布式构建中的服务发现机制,它允许你给节点分类(如windows、jdk11、vs2019),然后根据这些标签将任务精准投递到合适的节点上。

例如,你可以将一个任务配置为只能在具有windowsvs2019标签的节点上运行,这样就确保了任务环境的一致性。

03 环境准备:打好分布式构建的基础

在开始搭建分布式环境前,我们需要做好充分的准备。

硬件和软件要求

所有节点(主节点Master、从节点Slave)需安装相同版本的Jenkins,避免兼容性问题。同时,所有节点都需要安装Java运行时环境(JRE),推荐OpenJDK 11。

你可以通过以下命令验证Java版本:

java -version

对于Windows从节点,你需要确保已安装Java环境,并配置好环境变量。

网络要求

节点间网络互通是分布式构建的生命线,需要确保无防火墙拦截Jenkins通信端口,特别是SSH端口(默认22)JNLP端口(随机分配,也可固定)

安装Jenkins主节点

如果你是全新安装Jenkins,在Ubuntu系统上,你可以通过以下命令安装Jenkins主节点:

sudo apt update
sudo apt install openjdk-11-jdk # 安装Java
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt update
sudo apt install jenkins # 安装Jenkins
sudo systemctl start jenkins && sudo systemctl enable jenkins # 启动并设为开机自启

安装完成后,你可以通过http://<master-ip>:8080访问Jenkins Web界面。

04 配置主节点:让Jenkins认识新伙伴

首先登录Jenkins Web界面,进入Manage Jenkins → Manage Nodes and Clouds → New Node来创建新的从节点。

创建节点配置

创建节点时需要填写以下信息:

  • 名称:自定义(如windows-node-01)
  • 类型:选择Permanent Agent(常驻代理,推荐用于生产环境)
  • 远程工作目录:指定节点上的绝对路径(如D:\jenkins,需提前创建)
  • 标签:为节点打上标识(如windows、jdk11),用于后续任务定向分配
  • 用法:选择Use this node as much as possible,尽量使用此节点

启动方式配置

对于Windows从节点,有多种启动方式可选:

  1. Launch slave agents via Java Web Start:使用JNLP方式来建立slave与master的连接
  2. Let Jenkins control this Windows slave as a Windows service:Jenkins将把该Windows slave当做Windows service进行控制

对于Windows操作系统的节点,推荐用第二种Launch slave agents via Java Web Start

点击"保存"后,在Master中一个节点就配置好了。

05 以远程服务方式启动Windows从节点

当节点以Launch slave agents via Java Web Start配置好后,在节点界面将看到如图所示,其slave有三种启动方法。

本质上其实就一种,即将master中的slave-agent.jnlp文件下载至slave所在的虚拟机,然后运行文件。

下载并配置JNLP文件

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

值引力

持续创作,多谢支持!

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

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

打赏作者

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

抵扣说明:

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

余额充值