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

快速搭建Jenkins集群

nanshan 2025-02-11 12:57 13 浏览 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任务,并通过标签被分配到不同的节点上,实现多节点并行执行;

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

相关推荐

0722-6.2.0-如何在RedHat7.2使用rpm安装CDH(无CM)

文档编写目的在前面的文档中,介绍了在有CM和无CM两种情况下使用rpm方式安装CDH5.10.0,本文档将介绍如何在无CM的情况下使用rpm方式安装CDH6.2.0,与之前安装C5进行对比。环境介绍:...

ARM64 平台基于 openEuler + iSula 环境部署 Kubernetes

为什么要在arm64平台上部署Kubernetes,而且还是鲲鹏920的架构。说来话长。。。此处省略5000字。介绍下系统信息;o架构:鲲鹏920(Kunpeng920)oOS:ope...

生产环境starrocks 3.1存算一体集群部署

集群规划FE:节点主要负责元数据管理、客户端连接管理、查询计划和查询调度。>3节点。BE:节点负责数据存储和SQL执行。>3节点。CN:无存储功能能的BE。环境准备CPU检查JDK...

在CentOS上添加swap虚拟内存并设置优先级

现如今很多云服务器都会自己配置好虚拟内存,当然也有很多没有配置虚拟内存的,虚拟内存可以让我们的低配服务器使用更多的内存,可以减少很多硬件成本,比如我们运行很多服务的时候,内存常常会满,当配置了虚拟内存...

国产深度(deepin)操作系统优化指南

1.升级内核随着deepin版本的更新,会自动升级系统内核,但是我们依旧可以通过命令行手动升级内核,以获取更好的性能和更多的硬件支持。具体操作:-添加PPAs使用以下命令添加PPAs:```...

postgresql-15.4 多节点主从(读写分离)

1、下载软件[root@TX-CN-PostgreSQL01-252software]#wgethttps://ftp.postgresql.org/pub/source/v15.4/postg...

Docker 容器 Java 服务内存与 GC 优化实施方案

一、设置Docker容器内存限制(生产环境建议)1.查看宿主机可用内存bashfree-h#示例输出(假设宿主机剩余16GB可用内存)#Mem:64G...

虚拟内存设置、解决linux内存不够问题

虚拟内存设置(解决linux内存不够情况)背景介绍  Memory指机器物理内存,读写速度低于CPU一个量级,但是高于磁盘不止一个量级。所以,程序和数据如果在内存的话,会有非常快的读写速度。但是,内存...

Elasticsearch性能调优(5):服务器配置选择

在选择elasticsearch服务器时,要尽可能地选择与当前业务量相匹配的服务器。如果服务器配置太低,则意味着需要更多的节点来满足需求,一个集群的节点太多时会增加集群管理的成本。如果服务器配置太高,...

Es如何落地

一、配置准备节点类型CPU内存硬盘网络机器数操作系统data节点16C64G2000G本地SSD所有es同一可用区3(ecs)Centos7master节点2C8G200G云SSD所有es同一可用区...

针对Linux内存管理知识学习总结

现在的服务器大部分都是运行在Linux上面的,所以,作为一个程序员有必要简单地了解一下系统是如何运行的。对于内存部分需要知道:地址映射内存管理的方式缺页异常先来看一些基本的知识,在进程看来,内存分为内...

MySQL进阶之性能优化

概述MySQL的性能优化,包括了服务器硬件优化、操作系统的优化、MySQL数据库配置优化、数据库表设计的优化、SQL语句优化等5个方面的优化。在进行优化之前,需要先掌握性能分析的思路和方法,找出问题,...

Linux Cgroups(Control Groups)原理

LinuxCgroups(ControlGroups)是内核提供的资源分配、限制和监控机制,通过层级化进程分组实现资源的精细化控制。以下从核心原理、操作示例和版本演进三方面详细分析:一、核心原理与...

linux 常用性能优化参数及理解

1.优化内核相关参数配置文件/etc/sysctl.conf配置方法直接将参数添加进文件每条一行.sysctl-a可以查看默认配置sysctl-p执行并检测是否有错误例如设置错了参数:[roo...

如何在 Linux 中使用 Sysctl 命令?

sysctl是一个用于配置和查询Linux内核参数的命令行工具。它通过与/proc/sys虚拟文件系统交互,允许用户在运行时动态修改内核参数。这些参数控制着系统的各种行为,包括网络设置、文件...

取消回复欢迎 发表评论: