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暴露端口接受远程请求

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1120013.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

声明式pipline流水线

Jekins1.x版本仅支持UI界面手动配置流水线(Freestyle job),而2.x版本则实现了流水线即代码的机制,支持通过代码来描述部署整条流水线,在2.x版本中用于保存pipline代码并可以被Jenkins加载的文件称为JenkinsfileJenkins支持两种pipline语法&am…

大数据OLAP vs OLTP:核心区别与选型指南

大数据OLAP vs OLTP:核心区别与选型指南 关键词:大数据、OLAP、OLTP、数据分析、事务处理、选型指南 摘要:本文深入探讨大数据环境下联机分析处理(OLAP)与联机事务处理(OLTP)的核心区别&#xf…

混沌之舞:双摆系统仿真与AI交互式应用开发全解

一个小小初始角度差异,如何引发完全无法预测的运动轨迹?MATLAB与AI结合,让混沌之美触手可及。 当您第一次看到双摆运动时,可能会被它那优雅而不可预测的“舞蹈”所吸引。这个看似简单的机械系统,却展示了自然界最迷人的现象之一——混沌。 今天,我们将一同探索如何用MAT…

基于SpringBoot的美食推荐系统(毕业设计项目源码+文档)

课题摘要基于 SpringBoot 的美食推荐系统,聚焦餐饮消费 “个性化推荐、口味精准匹配、场景化选品” 的核心需求,针对传统美食推荐 “同质化严重、匹配度低、场景适配差” 的痛点,构建覆盖消费者、餐饮商家、平台运营者的全流程智能推荐生态。…

页缓存技术(PageCache/sendfile/mmap)

核心概念解析 1. PageCache(页缓存) 是什么? Linux 内核将磁盘文件数据缓存在物理内存中的一块区域,称为 PageCache。作用: 读操作:若数据在 PageCache 中,直接返回,避免磁盘 I/O&am…

基于SpringBoot的美食信息推荐网站系统(毕业设计项目源码+文档)

课题摘要基于 SpringBoot 的美食信息推荐网站,聚焦美食消费 “个性化推荐、信息精准触达、场景化选品” 的核心需求,针对传统美食网站 “内容同质化、口味匹配度低、场景适配性差” 的痛点,构建覆盖消费者、餐饮商家、平台运营者的全流程智能…

浙江大学团队全球首创AI创新能力测试:让机器人也能当“发明家“

这项由浙江大学张宁宇教授领导的研究团队与蚂蚁集团联合完成,发表于2025年的国际顶级会议,研究编号为arXiv:2512.01822v1。有兴趣深入了解的读者可以通过该编号查询完整论文。过去几年,我们见证了AI在下棋、写代码、解数学题方面的惊人表现。…

基于SpringBoot的面试刷题平台系统的设计与实现(毕业设计项目源码+文档)

课题摘要基于 SpringBoot 的面试刷题平台系统,聚焦求职备考 “精准刷题、能力评估、个性化学习” 的核心需求,针对传统刷题平台 “题库杂乱、缺乏针对性、学习效果难量化” 的痛点,构建覆盖考生、企业 HR、平台管理员的全流程刷题备考生态。系…

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

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

密歇根大学让AI视觉推理更靠谱:从“瞎猜“到“真看懂“的技术革命

这项由密歇根大学侯新海、亚马逊徐韶远等学者共同完成的研究,发表于2025年1月的arXiv预印本平台(编号:arXiv:2511.19661v1),为解决AI视觉推理中的"作弊"问题提供了全新解决方案。有兴趣深入了解的读者可以通…

南洋理工大学团队重新定义AI看世界:让机器像人类一样观察和思考

这项由南洋理工大学、南京理工大学、阿德莱德大学、百度、CSIRO以及商汤科技等多家知名机构合作的研究发表于2024年12月,研究团队包括唐伟、孙彦鹏、张珊、李晓凡等众多学者。有兴趣深入了解的读者可以通过论文编号arXiv:2512.01988v1查询完整论文。这项名为"A…

韩国大学团队揭秘:ChatGPT等AI模型是如何“类比思考“的?

这项由韩国大学的李台雨、宋旼珠、尹赞雄、朴政宇以及姜在宇等研究者共同完成的研究发表于2025年11月的人工智能顶级会议AAAI 2026,研究编号为arXiv:2511.20344v1。对这一前沿研究感兴趣的读者可以通过该编号查询完整论文。在日常生活中,我们经常会做这样…

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

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

内部收益率IRR是什么?3分钟掌握

目录 一、IRR到底是什么? 二、为什么要用IRR? 案例1 案例2 三、IRR怎么算? 四、IRR怎么看? 1、和你的资金成本比 2、和机会成本比 3、行业通常有基准线 五、IRR的局限性 问题1:多重IRR 问题2:再…

大语言模型在金融市场异常检测中的推理应用

大语言模型在金融市场异常检测中的推理应用关键词:大语言模型、金融市场异常检测、推理应用、数据处理、模型评估摘要:本文聚焦于大语言模型在金融市场异常检测中的推理应用。首先介绍了该研究的背景、目的、预期读者等信息,接着阐述了大语言…

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;}…

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

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

自考必看!8个高效降AIGC工具推荐

自考必看&#xff01;8个高效降AIGC工具推荐 AI降重工具&#xff1a;自考论文的“隐形护盾” 在自考论文写作过程中&#xff0c;越来越多的学生开始关注“AIGC率”和“查重率”的问题。随着人工智能技术的广泛应用&#xff0c;许多学生在使用AI生成内容时&#xff0c;发现论文中…

事务ACID特性详解

一、ACID基本概念 1. 原子性&#xff08;Atomicity&#xff09; 定义&#xff1a;事务的所有操作要么全部完成&#xff0c;要么全部不完成&#xff0c;不会停留在中间状态 比喻&#xff1a;就像银行转账&#xff0c;A账户扣款和B账户入账必须同时成功或同时失败 实现机制&am…

含光热电站、有机有机朗肯循环、P2G的综合能源优化调度附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f34a;个人信条&#xff1a;格物致知,完整Matlab代码及仿真咨询…