一、Jenkins简介
Jenkins是最著名的持续集成工具,是实现DevOps的必要组件之一,用于监控持续重复的工作,使软件的持续集成自动化,大大节约人力和时效。
Jenkins实现的思路: 开发人员将对应的代码编写完毕之后,将对应的分支提交到集成代码库(Git或者SVN)—>在Jenkins创建服务项目--->发布项目人员点击【构建版本】从Git或者SVN上拉取最新代码分支--->编译代码并打包成war/jar包-à部署到服务器1服务器2服务器n供使用
二、Jenkins搭建
- 安装配置jdk,下载官网:Java Downloads | Oracle;
- 添加jdk环境变量,验证是否安装成功:打开命令窗口,输入命令java –version
- Jenkins安装配置,下载官网:Jenkins download and deployment , 双击下载好的 Jenkins 即可进入安装步骤
- 登录,进入http://localhost:8080/登录成功页面
Jenkins默认端口是8080,启动后可以直接访问 IP:8080 就可以访问进去了。如果想要改端口,可以修改Jenkins的xml文件
第一次登录会要求登录密码,直接按照给的路径去找即可
登录成功页
三、基于Jenkins的主从配置实现Jenkins分布式架构
Jenkins通常以单节点模式工作,但其也可以通过代理的方式实现多节点架构,从而能够横向扩展Jenkins系统,支持大规模的持续集成/持续部署。

Jenkins单节点架构

不足之处:
如果所有执行程序都忙于处理构建任务,则Job必须等待。
当项目的数量或负载增加时,很可能会耗尽资源。
为了恢复并运行Jenkins基础设施,需要通过增加内存、CPU等来增强服务器,而这不具备可扩展性,必须根据需求维护和升级服务器。
……
---》Jenkins Master-Slave分布式架构
3.1 Master-Slave分布式概述
Jenkins 的 Master-Slave 分布式构建,是通过将构建过程分配到从节点 Slave 上,从而减轻 Master 节点的压力,而且可以同时构建多个,有点类似负载均衡的概念。
Jenkins主节点(Master)负责:
负责中心调度,调度构建作业。
将构建作业分发给代理实际执行。
监视从节点(Slave),并根据需要停止其工作。
如果所有Jenkins代理都被占用,也可以直接执行作业。
Jenkins从节点(Agent)负责:
Jenkins Agent是运行在远程服务器上并从主节点接收工作的Java可执行文件。
从主节点接收请求或工作,代理的工作就是按命令行事。
可以将工作配置为始终在特定代理上执行。
主节点将利用其资源来处理HTTP请求和管理构建环境,构建的实际执行将委托给代理。
从而横向扩展Jenkins架构。
3.2 Master-Slave分布式构建实现
主机A-Linux 10.11.201.98 作为Jenkins服务器master主节点;
主机B-Windows 192.168.29.190 作为slave 从节点,无需安装Jenkins,只需要编译环境即可;
3.2.1 开启代理程序的TCP端口(主机A)
Manage Jenkins ——》Security

3.2.2 新建节点(主机A)
Manage Jenkins——》Manage Nodes——》Nodes——》New node


3.2.3 建立主从节点的连接(主机B)
- 将agent.jar下载到slave机器上
- 在agent.jar所在路径下,cmd执行启动slave节点的命令后,master与slave连接成功



3.2.4 将任务指定到slave节点上运行
3.2.5 构建任务(主机A)
可看出,任务在从节点slave1-192.168.29.190下运行的


参考文档:
https://blog.youkuaiyun.com/yuff100/article/details/133920034
本文介绍了Jenkins作为持续集成工具的基础概念,包括其在DevOps中的作用,以及如何从单节点模式扩展到Master-Slave分布式架构,详细讲解了安装配置、端口管理、节点创建和任务调度的过程。





