news 2026/7/10 7:06:39

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/7/8 2:14:47

C++用new创建对象和不用new创建对象的区别解析

我们都知道C中有三种创建对象的方法&#xff0c;如下&#xff1a;#include <iostream>using namespace std;class A{private:int n;public:A(int m):n(m){}~A(){}};int main(){A a(1); //栈中分配A b A(1); //栈中分配A* c new A(1); //堆中分配delete c;return 0;}…

作者头像 李华
网站建设 2026/7/1 12:12:07

车辆GPS数据实战方案:SpringBoot + Kafka + Redis + MongoDB 全栈实现

1. 系统架构设计 1.1 整体架构 车辆终端 → SpringBoot接入层 → Kafka消息队列 → 数据处理层 → MongoDB存储 + Redis缓存 1.2 技术栈选择理由 技术 作用 选择理由 SpringBoot 接入层、快速开发 生态丰富、快速开发 Kafka 消息队列,高吞吐 解耦系统组件、支持顺序消息 Re…

作者头像 李华
网站建设 2026/7/8 1:25:25

【SCI复现】基于RSSA算法的冷热电联供型微网优化调度附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 &#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室 &#x1f447; 关注我领取海量matlab电子书和数学建模资料 &#x1…

作者头像 李华
网站建设 2026/7/2 7:40:19

力扣数据库——组合两个表

175. 组合两个表https://leetcode.cn/problems/combine-two-tables/ 一 题目 表: Person 列名类型PersonIdintFirstNamevarcharLastNamevarchar personId 是该表的主键&#xff08;具有唯一值的列&#xff09;。该表包含一些人的 ID 和他们的姓和名的信息。表: Address 列…

作者头像 李华
网站建设 2026/7/2 14:13:07

仓库管理的五大环节,你都做到位了吗?

目录 一、入库 1、要提前准备 2、验收核对 3、遇到异常情况怎么办&#xff1f; 4、及时录入 二、出库 1、审核单据 2、高效拣货 3、复核 4、交接时要留痕 三、盘点 1、提前做准备 2、盘点方法 3、执行规范 4、差异处理 四、存储 第一是分区分类 第二是先进先…

作者头像 李华
网站建设 2026/7/1 12:52:46

Linux 业务场景常用命令详解

一、系统监控与性能分析1. 系统资源监控# 实时监控系统资源 top htop # 增强版top&#xff0c;需安装# 查看系统负载 uptime cat /proc/loadavg# 内存监控 free -h vmstat 2 5 # 每2秒采样&#xff0c;共5次# CPU监控 mpstat -P ALL 1 # 每1秒查看所有CPU使用情况 sar…

作者头像 李华