jenkins分步式构建环境(agent)

在这里插入图片描述
root@jenkins:~# netstat -antp|grep 50000
tcp6 0 0 :::50000 ::😗 LISTEN 5139/java

1.52 安装Jenkins

root@ubuntu20:~# dpkg -i jenkins_2.414.3_all.deb

配置各种类型的Agent的关键之处在于启动Agent的方式
◼ JNLP Agent对应着“通过Java Web启动代理”这种方式
◼ Master与Slave之间建立一个基于HTTPS协力的Web连接
◼ Slave首次接入Master时,需要提供用于认证的Secret以完成
Bootstrap
配置JNLP Agent创建分布式构建环境的简要步骤
◼ 准备Agent节点,部署好Jenkins
◼ 在Master节点上,添加Agent节点的定义
◼ 在Master节点上,获取将Agent节点连接至Master时需要执行的
命令
◼ 在Agent节点上,打开命令终端,运行Master提示的命令
◼ 在Master节点上验证添加的结果

在这里插入图片描述

在这里插入图片描述
/home/jenkins/agent

点击创建的
在这里插入图片描述
agent 1.52 运行命令

root@ubuntu20:~# mkdir /home/jenkins/agent -pv
root@ubuntu20:~# chown -R jenkins.jenkins /home/jenkins/agent/

curl -sO http://192.168.1.51:8080/jnlpJars/agent.jar
java -jar agent.jar -jnlpUrl http://192.168.1.51:8080/computer/jenkins01%2D192%2E168%2E1%2E52/jenkins-agent.jnlp -secret db32e82e85dddf69f96f0f50bd13b5380f5f6de1789f0535c01bb650843c844a -workDir “/home/jenkins/agent”

编辑流水线填写agent的标签
在这里插入图片描述

查看流水线会在agent1.52中部署
在这里插入图片描述

ssh方式连接agent

root@ubuntu20:/var/lib/jenkins/plugins# passwd jenkins
New password: 123456
Retype new password:
passwd: password updated successfully

在这里插入图片描述

使用ssh连接成功
在这里插入图片描述

报错,授权即可

Building remotely on jenkins01-1.52 (linux-agent) in workspace /home/jenkins/agent/workspace/spring-boot-helloword2
The recommended git tool is: NONE
java.lang.ClassNotFoundException: org.jenkinsci.plugins.gitclient.Git$GitAPIMasterToSlaveFileCallablechown -R jenkins:jenkins /var/lib/jenkins/workspace/

使用docker agent

root@jenkins:~/learning-jenkins-cicd/07-jenkins-agents# cat docker-compose-inbound-agent.yml 
version: '3.6'volumes:agent01_data: {}agent02_data: {}networks:jenkins_net:driver: bridgeipam:config:- subnet: 172.31.9.0/24services:agent01:image: jenkins/inbound-agent:alpine-jdk11hostname: agent01.magedu.comuser: rootenvironment:TZ: Asia/ShanghaiJENKINS_URL: http://192.168.1.51:8080   #jenkinsmaster地址JENKINS_AGENT_NAME: agent01.magedu.com  #agent名字JENKINS_AGENT_WORKDIR: /home/jenkins/agentJENKINS_SECRET: 7eecbd2daa66612cac412d4fc484faf80fcee0fc0e8502b12abec11605744074    #jenkins添加节点后的密钥,保持一致# SECRET is automatically generated by the master when adding agent01.volumes:- agent01_data:/appdata/jenkins/networks:jenkins_net:ipv4_address: 172.31.9.11aliases:- slave01- agent01#extra_hosts:#  - "jenkins.magedu.com:172.29.7.7"#restart: alwaysagent02:image: jenkins/inbound-agent:alpine-jdk11hostname: agent02.magedu.comuser: rootenvironment:TZ: Asia/ShanghaiJENKINS_URL: http://192.168.1.51:8080JENKINS_AGENT_NAME: agent02.magedu.comJENKINS_AGENT_WORKDIR: /home/jenkins/agentJENKINS_SECRET: be0e53b93558553ee9694fced68d6443138ee13c5eeaf5d07bfad026d2fd36a6# SECRET is automatically generated by the master when adding agent02.volumes:- agent02_data:/appdata/jenkins/networks:jenkins_net:ipv4_address: 172.31.9.12aliases:- slave02- agent02#extra_hosts:#  - "jenkins.magedu.com:172.29.7.7"#restart: always

yaml文件 JENKINS_SECRET和jenkins中添加的密钥要一致

在这里插入图片描述
运行
docker-compose -f docker-compose-inbound-agent.yml up
在这里插入图片描述

运行成功后
在这里插入图片描述

添加流水线可以使用

通过docker ssh 连接

ssh-keygen -t rsa -b 2048 -P ‘’
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): .jenkins-ssh-agent-rsa
Your identification has been saved in .jenkins-ssh-agent-rsa
Your public key has been saved in .jenkins-ssh-agent-rsa.pub

查看并替换yanl

root@jenkins:~# cat .jenkins-ssh-agent-rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDPIv6Hjrl0r4QroJe++/xx3wMJesjoKW7Or16ilVTEXLP5PahwJyNlRZIJN5JdmFwu6QV/izQw0JvyceOo5Gebo1LZW6qZmhMJAJB537U38l1Wex7iIpnTlugrLkq2CtaOPKNEYEXBXH0SOaZuTosMoSLI83CBHlWWzAKcd/WRWQOMB48eABGvxC8LZDzrsA/uA3kIRaJS56PeWkBWK/OU/inCfzmSUVbN5uY3eRV/WHZ32R2dk9ELbmBjcxt+w2h+a0aWCuWj4wSQd8Oy0LfFTuuP+PwCpWasJqhIf3r+nms72oXk1qS9P7peFGybSDGePbW8BD209gJ3UzERif/j root@jenkins
 cat docker-compose-ssh-agent.yml 
version: '3.6'volumes:ssh_agent01_data: {}ssh_agent02_data: {}networks:jenkins_net:driver: bridgeipam:config:- subnet: 172.31.9.0/24services:ssh-agent01:image: jenkins/ssh-agent:jdk11hostname: ssh-agent01.magedu.com#user: jenkinsenvironment:TZ: Asia/ShanghaiJENKINS_AGENT_HOME: /home/jenkinsJENKINS_AGENT_SSH_PUBKEY: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDPIv6Hjrl0r4QroJe++/xx3wMJesjoKW7Or16ilVTEXLP5PahwJyNlRZIJN5JdmFwu6QV/izQw0JvyceOo5Gebo1LZW6qZmhMJAJB537U38l1Wex7iIpnTlugrLkq2CtaOPKNEYEXBXH0SOaZuTosMoSLI83CBHlWWzAKcd/WRWQOMB48eABGvxC8LZDzrsA/uA3kIRaJS56PeWkBWK/OU/inCfzmSUVbN5uY3eRV/WHZ32R2dk9ELbmBjcxt+w2h+a0aWCuWj4wSQd8Oy0LfFTuuP+PwCpWasJqhIf3r+nms72oXk1qS9P7peFGybSDGePbW8BD209gJ3UzERif/j  root@jenkins# SSH PRIVATE KEY and PUBLIC KEY is generated by you.networks:jenkins_net:ipv4_address: 172.31.9.21aliases:- ssh-slave01- ssh-agent01ports:- "22022:22"#restart: alwaysssh-agent02:image: jenkins/ssh-agent:jdk11hostname: ssh-agent02.magedu.com#user: jenkinsenvironment:TZ: Asia/Shanghai#JENKINS_AGENT_HOME: /home/jenkinsJENKINS_AGENT_SSH_PUBKEY: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDPIv6Hjrl0r4QroJe++/xx3wMJesjoKW7Or16ilVTEXLP5PahwJyNlRZIJN5JdmFwu6QV/izQw0JvyceOo5Gebo1LZW6qZmhMJAJB537U38l1Wex7iIpnTlugrLkq2CtaOPKNEYEXBXH0SOaZuTosMoSLI83CBHlWWzAKcd/WRWQOMB48eABGvxC8LZDzrsA/uA3kIRaJS56PeWkBWK/OU/inCfzmSUVbN5uY3eRV/WHZ32R2dk9ELbmBjcxt+w2h+a0aWCuWj4wSQd8Oy0LfFTuuP+PwCpWasJqhIf3r+nms72oXk1qS9P7peFGybSDGePbW8BD209gJ3UzERif/j  root@jenkins# SSH PRIVATE KEY and PUBLIC KEY is generated by you.networks:jenkins_net:ipv4_address: 172.31.9.22aliases:- ssh-slave02- ssh-agent02ports:- "22122:22"#restart: always

运行容器
root@jenkins:~/learning-jenkins-cicd/07-jenkins-agents# docker-compose -f docker-compose-ssh-agent.yml up

在jenkins创建,私钥保存为认证凭证

cat  .jenkins-ssh-agent-rsa
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn
NhAAAAAwEAAQAAAQEAzyL+h465dK+EK6CXvvv8cd8DCXrI6Cluzq9eopVUxFyz+T2ocCcj
ZUWSCTeSXZhcLukFf4s0MNCb8nHjqORnm6NS2VuqmZoTCQCQed+1N/JdVnse4iKZ05boKy
5KtgrWjjyjRGBFwVx9Ejmmbk6LDKEiyPNwgR5VlswCnHf1kVkDjAePHgARr8QvC2Q867AP
7gN5CEWiUuej3lpAVivzlP4pwn85klFWzebmN3kVf1h2d9kdnZPRC25gY3MbfsNofmtGlg
rlo+MEkHfDstC3xU7rj/j8AqVmrCaoSH96/p5rO9qF5NakvT+6XhRsm0gxnj21vAQ9tPYC
d1MxEYn/4wAAA8goLZHGKC2RxgAAAAdzc2gtcnNhAAABAQDPIv6Hjrl0r4QroJe++/xx3w
MJesjoKW7Or16ilVTEXLP5PahwJyNlRZIJN5JdmFwu6QV/izQw0JvyceOo5Gebo1LZW6qZ
mhMJAJB537U38l1Wex7iIpnTlugrLkq2CtaOPKNEYEXBXH0SOaZuTosMoSLI83CBHlWWzA
Kcd/WRWQOMB48eABGvxC8LZDzrsA/uA3kIRaJS56PeWkBWK/OU/inCfzmSUVbN5uY3eRV/
WHZ32R2dk9ELbmBjcxt+w2h+a0aWCuWj4wSQd8Oy0LfFTuuP+PwCpWasJqhIf3r+nms72o
Xk1qS9P7peFGybSDGePbW8BD209gJ3UzERif/jAAAAAwEAAQAAAQAj3Qg6ykBb7qOwtg5v
98seoCEze/nbEIlp6b014ysZEH/ssHtAZ9ZeC2ycge2qnN2hFaFpEt4Hcab+lC95p4o0zV
Nj5NYl4CJZlapuH4iN1j3I4mpXduwxUViDWXGAEWJSoDcYeJ67OttA05B4WssCdcfDCTs6
b9kb0djF5JM1Bee0A6O1g8nQPWtxjkFLfS5M0/PEwoMj7Slq+mQirZSzXeTMu5mZ4bLtNd
n7lTJxAV5zKDX1QsKvWFw5Rj74AG4ppGfGTuUkM5tBSkim7DSl0TiEW4Y9Q2oALZiDSrXy
g8EfTGrtVphJZzKCfFdJ7TtWaSqYohDWKt5xMZK0+f2xAAAAgFCJKXFxjCMf5NOke8EId0
mo0tEaxmyFdSfgqdWZqY2ZTZ+G/JODs4R8YOhIpmL6UfqD8MUw/B+smBPE02IDFjPpAYof
OQTPQSZxJdvSzyxfnUZIC3UlUIBm2u1qWxXTWxLJ5yg4JbUmF39U1O2Ye9oVpCxzT09iVs
7b8EitCQ9VAAAAgQDoMGkkM4XNIo2bmLTx0o3JntkrxpeKm4igX52/cgpnUVLvgXRBv2tM
Mif7baxWwtecW9p0y0w2WkqWsZZGRVQvUBf0NWx21xw1KWayCWXWCJgznjePJc7KzzxTod
eCW1pS0WbGqeCDx100xxxuCJCe4FB/YMpO5zyClAZUCRjqqwAAAIEA5GDj7zXXwNb1viJO
fMLCcK28Qhho2ueIOZIZF2TqcgElQaPUHVrBHQUtr/wEPqFYGLRP2qAiBNEQCL0QmuA94P
FxaKbQThtW/MZxSweitRxl5brua8jVofx2+6w/CNTco4DdmSceV0mZEKm+LPPaZsdM9g/b
huHbDn6nuAsFP6kAAAAMcm9vdEBqZW5raW5zAQIDBAUGBw==
-----END OPENSSH PRIVATE KEY-----

在这里插入图片描述

jenkins添加从节点
在这里插入图片描述

192.168.1.51 是jenkins容器运行所在的宿主机
Host Key Verification Strategy 选non
/opt/java/openjdk/bin/java 是容器里面的java路径
在这里插入图片描述查看正常
在这里插入图片描述

基于Docker容器的动态Agent

#192.168.1.52
docker service 添加
vim /usr/lib/systemd/system/docker.service
-H tcp://0.0.0.0:2376

root@ubuntu20:~/.ssh# systemctl daemon-reload
root@ubuntu20:~/.ssh# systemctl restart docker.service

jenkins 服务器测试

root@jenkins:~# curl http://192.168.1.52:2376/version
{"Platform":{"Name":"Docker Engine - Community"},"Components":[{"Name":"Engine","Version":"24.0.7","Details":{"ApiVersion":"1.43","Arch":"amd64","BuildTime":"2023-10-26T09:08:01.000000000+00:00","Experimental":"false","GitCommit":"311b9ff","GoVersion":"go1.20.10","KernelVersion":"5.4.0-81-generic","MinAPIVersion":"1.12","Os":"linux"}},{"Name":"containerd","Version":"1.6.24","Details":{"GitCommit":"61f9fd88f79f081d64d6fa3bb1a0dc71ec870523"}},{"Name":"runc","Version":"1.1.9","Details":{"GitCommit":"v1.1.9-0-gccaecfc"}},{"Name":"docker-init","Version":"0.19.0","Details":{"GitCommit":"de40ad0"}}],"Version":"24.0.7","ApiVersion":"1.43","MinAPIVersion":"1.12","GitCommit":"311b9ff","GoVersion":"go1.20.10","Os":"linux","Arch":"amd64","KernelVersion":"5.4.0-81-generic","BuildTime":"2023-10-26T09:08:01.000000000+00:00"}

安装插件docker-plugin
在这里插入图片描述

tcp://192.168.1.52:2376 #docker所在的地址

在这里插入图片描述
docker-agent2 docker-dyn-agent-2 #标签 ,流水线要配置标签才能使用
jenkins/inbound-agent:jdk11 #镜像
在这里插入图片描述

构建提示失败重启jenkins后成功:
在这里插入图片描述

在这里插入图片描述

在Docker Cloud上添加ssh Agent模板

系统管理-clounds
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

编辑修改流水线
在这里插入图片描述
查看使用了
在这里插入图片描述

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

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

相关文章

Pass基础-DevOps

,DevOps是Dev(开发)和Ops(运维/运营)的结合,它将人、流程、工具、工程实践等等结合起来应用到IT价值流的实现过程中,是一系列原则、方法、流程、实践、工具的综合体。DevOps面向应用的全生命周期…

js编辑只取修改后的对象的属性和值

需求:在el-table的列表编辑操作后, 第一步:获取当前行数据,为对象:{}, 第二步:数据回填 第三步:编辑 第四步:请求后端接口 本文章操作就是在编辑完成后,只取编…

深度学习 YOLO 实现车牌识别算法 计算机竞赛

文章目录 0 前言1 课题介绍2 算法简介2.1网络架构 3 数据准备4 模型训练5 实现效果5.1 图片识别效果5.2视频识别效果 6 部分关键代码7 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于yolov5的深度学习车牌识别系统实现 该项目较…

springboot整合SSE技术开发经验总结及心得

springboot整合SSE技术开发经验总结及心得 一、开发背景二、快速了解SSE1、概念2、特性 三、开发思路四、代码演示1、引入依赖2、服务端代码3、后端定时任务代码 4、解决乱码的实体类4、前端代码 五、核心代码分析 一、开发背景 公司需要开发一个大屏界面,大屏页面…

027 - STM32学习笔记 - ADC初识(一)

026- STM32学习笔记 - ADC初识(一) 前几天不小心把板子掉地上了,液晶屏摔坏了,暂时先停一下液晶屏的学习,等新的板子来了再继续学习。 一、ADC介绍 ADC指的是Analog to Digital Converter(模数转换器&…

【机器学习基础】机器学习入门(2)

🚀个人主页:为梦而生~ 关注我一起学习吧! 💡专栏:机器学习 欢迎订阅!后面的内容会越来越有意思~ 💡往期推荐:【机器学习基础】机器学习入门(1) 💡…

VB.net TCP服务端监听端口接收客户端RFID网络读卡器上传的读卡数据

本 示例使用设备介绍:WIFI/TCP/UDP/HTTP协议RFID液显网络读卡器可二次开发语音播报POE-淘宝网 (taobao.com) Imports System.Threading Imports System.Net Imports System.Net.Sockets Public Class Form1Dim ListenSocket As SocketDim Dict As New Dictionary(Of…

【汇编】汇编语言的介绍

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、汇编是什么?二、为什么要学习汇编语言?三、学习汇编语言的好处四、安装汇编环境4.1 下载虚拟环境4.2 配置虚拟环境 总结 前言 计算…

使用百度语音识别技术实现文字转语音的Java应用

探讨如何使用百度语音识别技术将文字转换为语音的Java应用。百度语音识别技术是一种强大的语音识别服务,可以将输入的文字转换为自然流畅的语音输出。我们将使用Java编程语言来实现这个应用,并提供相应的源代码。 首先,我们需要准备一些前提…

Cesium深入浅出之自定义材质

引子 做为一名技术宅却没有能拿得出手的技术无疑是最可悲的事情。三年前,当我第一次接触Cesium的时候就被它强大和炫丽所折服,最关键的是它还是开源的。以前我一直是机械地敲着业务代码,好像计算机程序就只能干这点事情一样,而 C…

Qt文档阅读笔记-Fetch More Example解析

Fetch More Example这个例子说明了如何在视图模型上添加记录。 这个例子由一个对话框组成,在Directory的输入框中,可输入路径信息。应用程序会载入路径信息的文件信息等。不需要按回车键就能搜索。 当有大量数据时,需要对视图模型进行批量增…

Git忽略文件.gitignore的使用

1.为什么使用? 当你使用git add .的时候有没有遇到把你不想提交的文件也添加到了缓存中去?比如项目的本地配置信息,如果你上传到Git中去其他人pull下来的时候就会和他本地的配置有冲突,所以这样的个性化配置文件我们一般不把它推送到git服务…

数据库 并发控制

多用户数据库系统:允许多个用户同时使用同一个数据库的数据库系统 交叉并发方式:在单处理机系统中,事务的并行执行实际上是这些并行事务的并行操作轮流交叉运行 同时并发方式:在多处理机系统中,每个处理机可以运行一个…

Java设计模式-结构型模式-代理模式

代理模式 代理模式静态代理动态代理JDK动态代理CGlib动态代理 代理模式 创建一个代理对象来控制对原始对象的访问,可以用来扩展原始对象的功能,同时保护原始对象 一般使用代理模式的目的有两个: 保护目标对象增强目标对象 代理模式有两种实现…

【OpenCV实现图像:用OpenCV图像处理技巧之巧用直方图】

文章目录 概要前置条件统计数据分析直方图均衡化原理小结 概要 图像处理是计算机视觉领域中的重要组成部分,而直方图在图像处理中扮演着关键的角色。如何巧妙地运用OpenCV库中的图像处理技巧,特别是直方图相关的方法,来提高图像质量、改善细…

stm32超声波测距不准的解决方法(STM32 delay_us()产生1us)及stm32智能小车超声波测距代码(C语言版本)

首先要说明一下原理:使用stm32无法准确产生1us的时间,但是超声波测距一定要依赖时间,时间不准,距离一定不准,这是要肯定的,但是在不准确的情况下,要测量一个比较准确的时间,那么只能…

同一个Unity项目打开两个Unity Editor实例

特殊情况下,同一个项目需要同时打开两个编辑器做测试,如多人在线游戏,或者有通信功能的时候就有这样的需求。同时也为了方便调试和观察日志。并且修改的是同一份代码。 命令介绍: 实现思路: 使用 mklink 命令 分别创建…

使用 huggingface_hub 镜像下载 大模型

download.py 👇 import os # 配置 hf镜像 os.environ[HF_ENDPOINT] https://hf-mirror.com# 设置保存的路径 local_dir "XXXXXX"# 设置仓库id model_id "sensenova/piccolo-large-zh"cmd f"huggingface-cli download --resume-downlo…

【MySQL】库的相关操作 + 库的备份和还原

库的操作 前言正式开始创建数据库删除数据库编码集查看系统默认字符集以及校验规则字符集校验规则 所有支持的字符集和校验规则所有字符集所有校验规则 指明字符集和校验规则创建数据库相同的字符集用不同的校验规则读取会出现什么情况 alter修改数据库show create databasealt…

瑞萨e2studio(29)----SPI速率解析

瑞萨e2studio.29--SPI速率解析 概述视频教学时钟配置解析RA4M2的BRR值时钟速率7.5M下寄存器值3K下寄存器值 概述 在嵌入式系统的设计中,串行外设接口(SPI)的通信速率是一个关键参数,它直接影响到系统的性能和稳定性。瑞萨电子的…