百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

快速搭建Jenkins集群

nanshan 2025-02-11 12:57 11 浏览 0 评论

关于Jenkins集群

在Jenkins上同时执行多个任务时,单机性能可能达到瓶颈,使用Jenkins集群可以有效的解决此问题,让多台机器同时处理这些任务可以将压力分散,对单机版Jenkins的单点故障的隐患也有分散作用,今天就来实战快速搭建Jenkins集群,Jenkins版本是2.190.2;

如何做到快速搭建集群

通过Docker可以省去大部分准备工作,您只需在Linux电脑上安装docker,在辅以少量命令和操作即可完成集群搭建;

环境信息

本次实战的环境一共要用三台电脑,它们的设置都是一样的,如下:

  1. 操作系统:CentOS Linux release 7.6.1810
  2. 防火墙关闭
  3. docker:1.13.1

三台电脑的信息如下:

建议agent2节点的内存大于4G,因为下一篇的实战操作会用agent2编译构建spring-framework,对内存的需求略大;

准备工作

  1. 后面的所有操作都是root账号;
  2. 在每台电脑上创建文件夹/usr/local/jenkins

创建Jenkins的master

  • 登录master机器,执行以下命令:
docker run \
 -u root \
 -idt \
 --name master \
 -p 8080:8080 \
 -p 50000:50000 \
 -v /usr/local/jenkins:/var/jenkins_home \
 -v /var/run/docker.sock:/var/run/docker.sock \
 jenkinsci/blueocean:1.19.0
  • 执行docker logs master,会在控制台显示jenkins的登录秘钥,如下图红框所示:
  • 浏览器输入地址:http://192.168.133.131:8080 ,显示Jenkins登录页面,如下图所示,在红框位置输入刚才复制的登录秘钥即可登录:
  • 选择安装推荐的插件
  • 静候插件在线安装完成:
  • 接下来是创建管理员和使用实例url的操作,这里就不多说了,您按实际情况自行斟酌;
  • 至此,Jenkins的master已经搭建好,接下来将agent1和agent2作为工作节点加入集群;

加入agent1

  • 在Jenkins网页上新增节点,操作如下图,先进入节点管理页面:
  • 如下图,新增一个节点,名为agent1
  • 接下来的节点详情信息如下图,注意四个红框中的内容要和图中保持一致:
  • 保存成功后会显示机器列表,如下图,图标上的红叉表示机器不在线(此时agent1还没有接入),点击红框:
  • 如下图所示,红框中的命令就是agent1的启动命令,执行该命令的机器会以agent1的身份加入集群:
  • 注意上图红框中的agent.jar是个名为agent.jar的文件的下载链接,将此文件下载到agent1电脑的/usr/local/jenkins目录下;
  • ssh登录agent1电脑,执行以下命令,即可将agent1加入Jenkins集群:
docker run \
 -u root \
 -idt \
 --name agent \
 -v /usr/local/jenkins:/usr/local/jenkins \
 bolingcavalry/openjdk-with-sshpass:8u232 \
 java -jar /usr/local/jenkins/agent.jar \
 -jnlpUrl http://192.168.133.131:8080/computer/agent1/slave-agent.jnlp \
 -secret 44c3e8d1531754b8655b53294bbde6dd99b3aaa91a250092d0d3425534ae1058 \
 -workDir "/usr/local/jenkins"

上述命令中的后半部分,即java -jar …就是前面图片红框中的agent1启动命令,唯一要改变的是将agent.jar改成绝对路径
/usr/local/jenkins/agent.jar

  • 上述命令的镜像是bolingcavalry/openjdk-with-sshpass:8u232,其Dockerfile内容如下,可见非常简单,就是OpenJDK镜像里面安装了sshpass,这样的容器可以在执行ssh命令时带上远程机器的密码,而不用等待用户输入密码,这样便于shell脚本执行ssh命令:
FROM openjdk:8u232

ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install --assume-yes sshpass
  • 去Jenkins的网页上查看节点列表,如下图,可见agent1已经成功加入:

加入agent2

agent2加入集群的方式和agent1大部分是一样的,只有以下两点要注意:

  1. 在Jenkins页面上创建节点,名称是agent2
  2. agent2的标签是gradle,如下图红框所示:
  • 此时agent2也加入成功:

至此,Jenkins集群搭建完成,这两个节点带有不同的标签,下一篇文章《Jenkins集群下的pipeline实战》,我们在这个集群环境创建pipeline任务,并通过标签被分配到不同的节点上,实现多节点并行执行;

欢迎关注公众号:程序员欣宸

相关推荐

CentOS 7 搭建 Harbor2.4.1 Docker镜像仓库

上一篇文章我们使用了registry镜像来搭建Docker私有镜像仓库,但是使用体验不是很好,没有一个可管理的UI界面,管理很麻烦。本篇文章将介绍一个新的搭建Docker镜像仓库的工具叫做Har...

简单认识认识mqtt及mosquitto(mqtt报文解析)

某项目中使用了MQTT作为进程间的通信方式,之前没用过,这两篇笔记我们就来一起学习一下这种方式。MQTT的一些介绍以下介绍内容来自《[野火]《LwIP应用开发实战指南》MQTT协议全称是Messa...

全源码打造高性能 LNMP 架构: 实战教程(2025最新版)

适用场景:企业生产环境、自建Web服务、深度性能调优操作系统:CentOS7/8、RockyLinux、Debian、Ubuntu(本文以CentOSStream9为例)技术栈:N...

Nacos3.0重磅来袭!全面拥抱AI,单机及集群模式安装详细教程!

之前和大家分享过JDK17的多版本管理及详细安装过程,然后在项目升级完jdk17后又发现之前的注册和配置中心nacos又用不了,原因是之前的nacos1.3版本的,版本太老了,已经无法适配当前新的JD...

Ubuntu24.04.2 企业级MinIO存储系统部署指南

一、概要1.1MinIO架构解析MinIO是一款高性能的云原生对象存储系统,采用Golang开发并遵循ApacheLicensev2.0协议。其核心架构基于纠删码(ErasureCode)技...

从零打造自己的 国产鸿蒙(OpenHarmony)定制系统-完整可落地流程

适用版本:OpenHarmony4.0/5.0Standard目标人群:想在x86PC、RK3568开发板或自有硬件上裁剪、加品牌、预装应用并生成可刷机镜像的开发者/团队目录环境准...

一次暂未成功的dify安装经历(dify怎么安装)

前几天在阿里云买了一台机,这几天一直在尝试安装dify,到现在还没安装上我是按这个教程装的https://blog.csdn.net/2401_82469710/article/details/14...

ZLMediaKit教程(五)支持webrtc(webrtc lib)

ZLMediaKit系列文章(共六篇):ZLMediaKit流媒体(一)编译安装ZLMediaKit教程(二)主程序和配置文件解析ZLMediaKit教程(三)URL规则ZLMediaKit教程...

Linux程序安装与管理指南(linux程序安装命令大全)

在Linux系统中,安装和管理程序主要通过包管理器和手动编译安装两种主要方式实现。以下是详细的操作指南,涵盖常见发行版(如Ubuntu/Debian、CentOS/RHEL、Fedora等)的用法。一...

离线状态下安装 Nginx 各个模块?这篇攻略让你轻松搞定

你是不是也在为离线状态下安装Nginx各个模块而发愁?在互联网大厂后端开发工作中,我们常常会遇到一些特殊的网络环境,比如公司内部的离线服务器,或是处于隔离状态的测试环境。当需要在这些离线环境中安装...

Rust实践:Win10环境下的openssl交叉编译

Rust支持跨平台,可以指定生成目标平台,交叉编译也是支持的。当然,想要交叉编译成功,还需要指定平台的编译器(如:msvc、gcc等)。openssl是C语言开发的库,如果在Rust代码中用到open...

Linux下Blackwell架构显卡(RTX5070/5090)编译PaddlePaddle指南

Blackwell显卡架构如RTX5070\5090等显卡当前Paddle预编译版本中包含的GPU架构(即SM架构)是有限的,比如常见的SM75(T4)、SM86(A10)、SM89(...

突破操作系统界限,掌握Linux的必备指南

#头条创作挑战赛#简介Linux是一种开源的操作系统,它的核心思想是自由和开放。Linux以其稳定性、可靠性和安全性而闻名,被广泛用于服务器和嵌入式设备中。Linux创始人Linux安装在安装Linu...

Linux日常高频使用的100条命令,强烈建议收藏

查看系统信息如何查看系统版本:uname-alsb_release-acat/etc/os-release如何查看系统内核信息:uname-r如何查看系统CPU信息:lscpucat...

Linux文件系统结构全解析(linux文件结构详解)

对Linux新手而言,“一切皆文件”的设计哲学常让人既兴奋又困惑——打开终端输入ls/,看到的bin、etc、var等目录到底有什么用?如何快速定位关键文件?本文将从Linux文件系统的底层逻...

取消回复欢迎 发表评论: