jenkins分步式构建环境(agent)

这篇具有很好参考价值的文章主要介绍了jenkins分步式构建环境(agent)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

jenkins agent,jenkins,运维
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节点上验证添加的结果

jenkins agent,jenkins,运维

jenkins agent,jenkins,运维
/home/jenkins/agent

点击创建的
jenkins agent,jenkins,运维
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的标签
jenkins agent,jenkins,运维

查看流水线会在agent1.52中部署
jenkins agent,jenkins,运维

ssh方式连接agent

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

jenkins agent,jenkins,运维

使用ssh连接成功
jenkins agent,jenkins,运维

报错,授权即可

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$GitAPIMasterToSlaveFileCallable

chown -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: bridge
    ipam:
      config:
        - subnet: 172.31.9.0/24

services:
  agent01:
    image: jenkins/inbound-agent:alpine-jdk11
    hostname: agent01.magedu.com
    user: root
    environment:
      TZ: Asia/Shanghai
      JENKINS_URL: http://192.168.1.51:8080   #jenkinsmaster地址
      JENKINS_AGENT_NAME: agent01.magedu.com  #agent名字
      JENKINS_AGENT_WORKDIR: /home/jenkins/agent
      JENKINS_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.11
        aliases:
          - slave01
          - agent01
    #extra_hosts:
    #  - "jenkins.magedu.com:172.29.7.7"
    #restart: always

  agent02:
    image: jenkins/inbound-agent:alpine-jdk11
    hostname: agent02.magedu.com
    user: root
    environment:
      TZ: Asia/Shanghai
      JENKINS_URL: http://192.168.1.51:8080
      JENKINS_AGENT_NAME: agent02.magedu.com
      JENKINS_AGENT_WORKDIR: /home/jenkins/agent
      JENKINS_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.12
        aliases:
          - slave02
          - agent02
    #extra_hosts:
    #  - "jenkins.magedu.com:172.29.7.7"
    #restart: always

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

jenkins agent,jenkins,运维
运行
docker-compose -f docker-compose-inbound-agent.yml up
jenkins agent,jenkins,运维

运行成功后
jenkins agent,jenkins,运维

添加流水线可以使用

通过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: bridge
    ipam:
      config:
        - subnet: 172.31.9.0/24

services:
  ssh-agent01:
    image: jenkins/ssh-agent:jdk11
    hostname: ssh-agent01.magedu.com
    #user: jenkins
    environment:
      TZ: Asia/Shanghai
      JENKINS_AGENT_HOME: /home/jenkins
      JENKINS_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.21
        aliases:
          - ssh-slave01
          - ssh-agent01
    ports:
      - "22022:22"
    #restart: always

  ssh-agent02:
    image: jenkins/ssh-agent:jdk11
    hostname: ssh-agent02.magedu.com
    #user: jenkins
    environment:
      TZ: Asia/Shanghai
      #JENKINS_AGENT_HOME: /home/jenkins
      JENKINS_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.22
        aliases:
          - ssh-slave02
          - ssh-agent02
    ports:
      - "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 agent,jenkins,运维

jenkins添加从节点
jenkins agent,jenkins,运维

192.168.1.51 是jenkins容器运行所在的宿主机
Host Key Verification Strategy 选non
/opt/java/openjdk/bin/java 是容器里面的java路径
jenkins agent,jenkins,运维查看正常
jenkins agent,jenkins,运维

基于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
jenkins agent,jenkins,运维

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

jenkins agent,jenkins,运维
docker-agent2 docker-dyn-agent-2 #标签 ,流水线要配置标签才能使用
jenkins/inbound-agent:jdk11 #镜像
jenkins agent,jenkins,运维

构建提示失败重启jenkins后成功:
jenkins agent,jenkins,运维

jenkins agent,jenkins,运维

在Docker Cloud上添加ssh Agent模板

系统管理-clounds
jenkins agent,jenkins,运维

jenkins agent,jenkins,运维

jenkins agent,jenkins,运维
jenkins agent,jenkins,运维

编辑修改流水线
jenkins agent,jenkins,运维
查看使用了
jenkins agent,jenkins,运维文章来源地址https://www.toymoban.com/news/detail-803433.html

到了这里,关于jenkins分步式构建环境(agent)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Jenkins 构建环境指南

    Jenkins 构建环境指南

    目录 Delete workspace before build starts(常用) Use secret text(s) or file(s) (常用) Add timestamps to the Console Output (常用) Inspect build log for published build scans Terminate a build if it\\\'s stuck With Ant Delete workspace before build starts(常用) 在每次构建开始前清空工作空间。这确保了每次构建开始时都

    2024年02月04日
    浏览(10)
  • jenkins选择不同构建环境

    jenkins选择不同构建环境

    1、业务在有些情况下需要选择不同的环境来构建服务,使用同一套代码读取不同的配置 2、jenkins使用如下配置即可实现构建环境的选择 2.1、配置构建选项 2.2、配置构建tag 2.3、选择构建时间参数 3、使用如下pipeline实现jenkins构建环境选择 4、执行完成后的Pipeline如下

    2024年02月11日
    浏览(7)
  • Jenkins环境部署与任务构建

    Jenkins环境部署与任务构建

    CI/CD 是一种软件开发和交付方法,旨在加速应用程序的开发、测试和部署过程,以提高软件交付的质量和效率。 (1) 持续集成 (CI Continuous Integration): 持续集成是开发团队频繁集成其代码更改的过程。开发者将其代码合并到共享代码库(如Git仓库)后,CI工具(例如Jenkins、Trav

    2024年02月05日
    浏览(12)
  • 小白到运维工程师自学之路 第七十九集 (基于Jenkins自动打包并部署Tomcat环境)2

    小白到运维工程师自学之路 第七十九集 (基于Jenkins自动打包并部署Tomcat环境)2

      拉到最后选择构建后操作 拉到最后点击保存   访问192.168.77.19:8080/probe 账户密码都是tomcat  

    2023年08月27日
    浏览(13)
  • 【window环境】Jenkins使用gitee构建spring boot项目

    【window环境】Jenkins使用gitee构建spring boot项目

    这里不做详细介绍 下载jdk 安装 配置环境变量 JAVA_HOME 路径到jdk安装根路径 CLASS_PATH ;%JAVA_HOME%lib; path ;%JAVA_HOME%bin;%JAVA_HOME%jrebin; 验证 cmd命令: java -version 因为低版本jenkins插件不好下载。 换成高版本jenkins 要安装jdk11 因为本地安装过jdk不想载安装一个 所以下载了一个免安装

    2024年02月03日
    浏览(36)
  • Building Your Team-Jenkins持续构建环境搭建

    工欲善其事,必先利其器。 本文主要总结团队协助中,Jenkins持续构建环境搭建。 下文将分docker环境以及单机环境分别说明 Docker 环境安装 在Linux服务器上安装Docker环境,具体可以参考:https://docs.docker.com/engine/install/ubuntu/ 开放端口号 jenkins工作目录 Docker环境下安装Jenkins 参考

    2024年02月03日
    浏览(9)
  • 快速构建一个 GitLab + Jenkins + Harbor 的云原生 DevOps 环境

    快速构建一个 GitLab + Jenkins + Harbor 的云原生 DevOps 环境

    今天我们要搭建一条怎样的工具链呢?且看效果图: GitLab + Jenkins + Harbor Toolchain Workflow 首先我们需要完成 GitLab、Jenkins 和 Harbor 三个工具的部署; 接着我们需要在 GitLab 上创建一个代码库,并且在 Jenkins 上创建相应的流水线,这个流程最好也自动化(确实可以自动化); 然后

    2024年02月15日
    浏览(12)
  • 基于Jenkins自动打包并部署docker、PHP环境,ansible部署-------从小白到大神之路之学习运维第86天

    基于Jenkins自动打包并部署docker、PHP环境,ansible部署-------从小白到大神之路之学习运维第86天

    第四阶段提升 时  间:2023年8月23日 参加人:全班人员 内  容: 基于Jenkins部署docker、PHP环境 目录 一、环境部署 (一)实验环境,服务器设置 (二)所有主机关闭防火墙和selinux,修改主机名 (三)配置git主机 (四)配置jenkins主机 (五)Jenkins配置 二、基于Jenkins自动打包

    2024年02月11日
    浏览(16)
  • QT+jenkins window环境实现一键自动化构建打包签名发布

    QT+jenkins window环境实现一键自动化构建打包签名发布

            1.官网下载地址: Jenkins download and deployment,下载最新版本的安装包并安装。安装过程中,会要求你输入端口号并记住。         2.java下载地址:Java Downloads | Oracle,下载最新版本的安装包并安装。         3.浏览器输入网址:127.0.0.1: port, port为端口号,默认8080,安

    2024年02月01日
    浏览(18)
  • Jenkins分布式实现: 构建弹性和可扩展的CI/CD环境!

    Jenkins分布式实现: 构建弹性和可扩展的CI/CD环境!

    Jenkins是一个流行的开源持续集成(Continuous Integration,CI)和持续交付(Continuous Delivery,CD)工具,它通过自动化构建、测试和部署过程,帮助开发团队更高效地交付软件。Jenkins的分布式实现允许将任务分散到多个计算机上执行,从而提高系统的弹性和可扩展性。本文将深入

    2024年02月01日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包