当前位置: 首页 > news >正文

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.jsqmd.com/news/206647/

相关文章:

  • 声明式pipline流水线
  • 基于SpringBoot的美食推荐系统(毕业设计项目源码+文档)
  • 混沌之舞:双摆系统仿真与AI交互式应用开发全解
  • 基于SpringBoot的美食信息推荐网站系统(毕业设计项目源码+文档)
  • 页缓存技术(PageCache/sendfile/mmap)
  • 浙江大学团队全球首创AI创新能力测试:让机器人也能当“发明家“
  • 基于SpringBoot的面试刷题平台系统的设计与实现(毕业设计项目源码+文档)
  • 字节跳动团队揭示如何让万能AI变得更高效
  • 密歇根大学让AI视觉推理更靠谱:从“瞎猜“到“真看懂“的技术革命
  • 南洋理工大学团队重新定义AI看世界:让机器像人类一样观察和思考
  • 韩国大学团队揭秘:ChatGPT等AI模型是如何“类比思考“的?
  • 工程项目管理工作台怎么搭建?掌握这四点就够了
  • 内部收益率IRR是什么?3分钟掌握
  • 大语言模型在金融市场异常检测中的推理应用
  • C++用new创建对象和不用new创建对象的区别解析
  • 仓库管理的五大环节,你都做到位了吗?
  • 自考必看!8个高效降AIGC工具推荐
  • 事务ACID特性详解
  • 含光热电站、有机有机朗肯循环、P2G的综合能源优化调度附Matlab代码
  • 计算机深度学习毕设实战-基于 人工智能深度学习算法训练数字识别
  • 学长亲荐2026专科生必备10款AI论文写作软件测评
  • 含氢气氨气综合能源系统优化调度研究附Matlab代码
  • 【课程设计/毕业设计】基于机器学习深度学习算法训练数字识别
  • Spring 三级缓存详解
  • 2025金三银四:大模型训练岗年薪百万技术栈揭秘,非常详细收藏我这一篇就够了!
  • 前端Vue开发环境搭建(安装Node.js)
  • Azure Dataverse 权限设计学习
  • 分布式事务原理及实际业务场景详解
  • 基于JAVA框架的学生宿舍寝室报修管理系统的设计与实现应用和研究
  • 【SCI复现】基于RSSA算法的冷热电联供型微网优化调度附Matlab代码