news 2026/4/3 6:28:12

Jenkins分布式构建配置

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Jenkins分布式构建配置

master/agent架构,一主多从,master节点负责webUI和用户定义流水线任务然后把任务分发给agent节点,agent节点进行负责执行构建任务的,可以通过节点标签来指定将哪些构建任务在指定的标签agent节点进行构建

Master和Agent连接方式有两种:ssh连接基于秘钥ssh-key生成给jenkins认证,JNLP连接java web代理连接通过生成secret密码串进行认证固定端口为5000/tcp

Agent节点有三种部署方式
1)节点Agent,在一个主机上部署一个jenkins实例,把他做为Master节点的被使用端,构建任务在该节点上进行

2)Docker Agent,只做为agent使用没有jenkins的webUI功能,更轻量化,容器只负责执行matser下发的构建任务;此agent有两种分别为“静态docker Agent”和“动态docker agent” ,静态是基于特定的docker镜像持续运行agent节点容器,动态就是通过jenkins的Master节点按需在docker上启动容器做为Agent节点完成构建任务后销毁

⚙️配置JJLP连接jenkins Agent节点
1)系统管理-->节点管理-->添加节点-->填写节点名称并勾选固定节点,点击Create

2) 参数定义配置
远程工作目录如果Agent主机部署jenkins有jenkins用户那么需要填写为默认的工作目录/home/jenkins/,用户有写权限

这里我们因为选择的是通过JNLP方式来连接Agent节点,所以选择"通过Java Web启动代理"

因为使用JNLP方式连接需要把代理端口打开,在全局安全配置

然后点击节点,根据系统linux或Windows复制对应命令在Agent主机上执行,不需要安装jenkins实例,需要在Agent主机上创建jenkins用户家目录,如果是特定工作目录,需要把目录属主属组全部改为jenkins用户和组

进行连接并查看是否连接成功



因为给的命令式前端运行的,在关闭终端或ctrl+c中断会导致离线,所以需要执行一个后台运行的命令加一个nohup命令,或者写一个system文件
方法1:使用nohup

nohup java -jar agent.jar -url http://10.150.9.121:8080/ -secret e23e38598309c4b59935f27fdc0af82d63a0173628e6e1887cca9254204661f3 -name Agent1 -webSocket -workDir "/home/jenkins" > /home/jenkins/agent.log 2>&1 &

方法2:使用systemd管理
创建一个 systemd 服务文件,例如/etc/systemd/system/jenkins-agent.service

[Unit] Description=Jenkins Agent After=network.target [Service] Type=simple User=jenkins WorkingDirectory=/home/jenkins ExecStart=/usr/bin/java -jar /home/jenkins/agent.jar -url http://10.150.9.121:8080/ -secret e23e38598309c4b59935f27fdc0af82d63a0173628e6e1887cca9254204661f3 -name Agent1 -webSocket -workDir "/home/jenkins" Restart=always RestartSec=10 [Install] WantedBy=multi-user.target

新建一个构建任务进行测试


🔐c:SSH 方式更常见、更受生产环境青睐
在agent主机上创建jenkins用户并设置密码,在master上添加Username with Password凭据口令凭据,输入用户名和密码进行调用;

也可以选择SSH Username with private key添加私钥凭据进行连接需要在agent执行命令在本地生成公钥文件,ssh-copy-id -i .ssh/id_rsa.pub jenkins@自己的Agent主机IP地址,输入密码登录后,查看jenkins用户目录下生成了.ssh/authorized_keys文件就能够远程连接了

具体操作

1、Agent主机:useradd -m jenkins -s /bin/bash 2、如果执行构建任务需要特定工作目录,那么需要创建并把属主和属组改为jenkins mkdir -p /appdata/jenkins chown -R /appdata/jenkins 3、切换用户jenkins上 su jenkins 4、生成私钥 ssh-keygen -t rsa -P "" 5、查看复制私钥 cat .ssh/id_rsa 6、在jenkins master主机上保存,凭据为SSH Username with private key,在Private Key下添加刚才的 私钥 7、ssh-copy-id -i .ssh/id_rsa.pub jenkins@自己的Agent主机IP地址,输入密码登录后,查看jenkins用户目录下生成了.ssh/authorized_keys文件就能够远程连接了 ssh-copy-id -i .ssh/id_rsa.pub jenkins@10.150.9.120 ll .ssh/authorized_keys 8、验证是否连接成功

🧩基于Docker容器的动态Agent
1)在jenkins master插件商店上安装dokcer插件
2)在Agent主机上安装Docker并创建jenkins用户,并将jenkins用户添加附属组为docker
3)添加Clound,将Docker Host URL内容远程主机填写tcp://主机IP+端口,还需要在agent主机上的docker的system文件添加-H tcp://0.0.0.0:2376暴露端口接受远程请求

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/20 13:11:10

字节跳动团队揭示如何让万能AI变得更高效

这项由字节跳动种子实验室何帅威、邓朝瑞、严申,以及马里兰大学帕克分校李昂共同完成的研究,发表于2025年12月的arXiv预印本平台(论文编号:arXiv:2512.02351v1),为我们揭示了一个有趣的现象:那些…

作者头像 李华
网站建设 2026/3/30 18:35:46

工程项目管理工作台怎么搭建?掌握这四点就够了

目录 一、工作台的核心价值 二、四大核心模块 (一)履约分析:给项目做 “健康体检” (二)资源配置:把人、钱、物管细管好 (三)项目画像:给每个项目建 “数字身份证”…

作者头像 李华
网站建设 2026/4/3 3:01:09

基于SpringBoot的校园志愿者服务平台设计与实现毕业设计项目源码

题目简介基于 SpringBoot 的校园志愿者服务平台,聚焦校园公益服务 “活动高效组织、志愿时长精准管理、师生便捷参与” 的核心需求,针对传统志愿活动 “报名流程繁琐、时长统计人工化、资源对接低效” 的痛点,构建覆盖学生、志愿组织、学校管…

作者头像 李华
网站建设 2026/3/11 2:47:33

基于JAVA框架的学生宿舍寝室报修管理系统的设计与实现应用和研究

文章目录摘要项目简介大数据系统开发流程主要运用技术介绍爬虫核心代码展示结论源码文档获取定制开发/同行可拿货,招校园代理 :文章底部获取博主联系方式!摘要 随着高校规模的扩大和学生人数的增加,宿舍设施的维护与管理成为一项重要任务。传…

作者头像 李华
网站建设 2026/3/30 12:09:43

CTF 学习笔记

文章目录一,CTF(CaptureThe Flag)1 CTF简介2 CTF赛事2.1 国家赛事2.2 国内赛事3 CTF意义4 CTF学习4.1 竞赛模式4.2 题目类型4.3 学习建议二,CTF题目案例三,CTF靶机实战一步步拿下WordPres1 实验环境1.1WordPress简介1.…

作者头像 李华