Jenkins从配置到实战(二) - Jenkins的Master-Slave分布式构建

news2024/12/25 12:59:37

前言

  • Jenkins的Master-Slave分布式构建,就是通过将构建过程分配到从属Slave节点上,从而减轻Master节点的压力,而且可以同时构建多个,有点类似负载均衡的概念。
  • 简单理解就是,将Jenkins服务器上的构建任务分配到其他机器上,可以是linux,也可以是windows,这样不仅减轻了Jenkins服务器的压力,也实现了跨平台的任务构建。

准备工作

  • 首先要有一台Jenkins服务器,如何搭建可参考我的另一篇文章
  • 我这里计划配置三个从属节点,所以分别准备了三台机器。一台虚拟机A Centos,ip为192.168.206.134,一台虚拟机B Ubuntu,ip为192.168.206.139,一台windows机器C,ip为192.168.206.133。
  • 虚拟机A Centos java 安装命令
    • 查找 : yum search java|grep jdk
    • 选择一个安装 : yum install java-1.8.0-openjdk
  • 虚拟机B Ubuntu java 安装命令
    • 查找 : apt search java|grep jdk
    • 选择一个安装 : apt install openjdk-8-jdk
  • windows机器C java安装
    • windows去官网下载安装java,配置环境变量。这里我就不介绍了,windows安装java的文章很多。
  • 这里重点介绍如何去配置Centos从节点,可以选择只配置这一台,熟悉这个流程就可以。

Jenkins配置 - 配置centos从节点

  • jenkins节点管理这块,目前只有一个节点,就是我的jenkins服务器
    在这里插入图片描述
  • 开始配置新节点,选择系统管理
    在这里插入图片描述
  • 然后选择全局安全设置
    在这里插入图片描述
  • 代理这里指定一个端口,然后保存。
    在这里插入图片描述
  • 然后在系统管理中选择节点管理
    在这里插入图片描述
  • 新建一个节点
    在这里插入图片描述
  • 起一个节点名称,然后创建
    在这里插入图片描述
  • 依次填写以下信息,这里的信息就是刚才准备的虚拟机A的信息,可以在虚拟机A的root目录下创建一个jenkins目录。
    在这里插入图片描述
    在这里插入图片描述
  • 保存之后,可以看到这里已经有一个新的节点了。但显示节点不在线
    在这里插入图片描述
  • 点开可以看到以下信息,然后先点击agent.jar把这个包下载下来
    在这里插入图片描述
  • 然后把这个agent.jar拷贝到虚拟机A的/root/jenkins目录下,然后在虚拟机A的/root/jenkins目录下执行上面那个命令
  •   java -jar agent.jar -jnlpUrl http://192.168.206.137:8080/computer/centos7/jenkins-agent.jnlp -secret 0d6908ae6652429557b05ed7e0060b5a5d0dea0a3dd6b0b159752599f5d72469 -workDir "/root/jenkins"
    
  • 看到以下提示信息,说明连接成功了
    在这里插入图片描述
  • 再返回节点列表,可以看到节点centos7已经是在线状态了
    在这里插入图片描述
  • 然后再在系统管理中选择插件管理
    在这里插入图片描述
  • 在可选插件这里搜索 Node and Label parameter,安装
    在这里插入图片描述

实现远程构建

  • 新建一个任务
    在这里插入图片描述

  • 这里选择Node
    在这里插入图片描述
    在这里插入图片描述

  • 这里指定git仓库,选择分支
    在这里插入图片描述

  • 创建任务成功后,可以看到这里多了一个Build with Patameters参数
    在这里插入图片描述

  • 这里可以看到,就可以选不同节点了。我们选择centos7,点击开始构建
    在这里插入图片描述

  • 构建成功。我的jenkins服务器ip为192.168.206.137,从这里可以看到,代码已经拉取到了另一台机器 192.168.206.134上面了。
    在这里插入图片描述

  • 可以看到在虚拟机A上有成功拉取的代码了。
    在这里插入图片描述

  • 我们可以在虚拟机A上,实现代码的拉取,编译,打包及发布,减轻了jenkins服务器的压力。如果有需求,可以按照以上步骤添加更多的机器,把构建任务分发到不同的机器上去执行。

Jenkins配置 - 配置Ubuntu从节点

  • 基本上和配置centos节点步骤一样,这里也不介绍了
  • 看下ubuntu机器的配置
    在这里插入图片描述
    在这里插入图片描述

Jenkins配置 - 配置Windows从节点

  • Windows的配置步骤和linux也差不多,我们可以在C盘下建一个jenkins目录,将agent.jar程序拷贝过去,在cmd命令行执行对应的launch命令。
  • Windows平台配置如下
    在这里插入图片描述
    在这里插入图片描述
  • 这里注意下,我们可以在工具位置添加我们要使用的命令的位置,比如git,cmake等。
    在这里插入图片描述

效果

  • 配置完成,看下效果。三台从节点机器都是在线状态了。
    在这里插入图片描述
  • 我们在执行构建任务时,就可以将任务分配到不同的机器上。
    在这里插入图片描述

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

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

相关文章

GitLab开启双端认证并登录GitLab

GitLab开启双端认证并登录GitLab 1.介绍双端认证 单重认证——密码验证,这极其容易出现密码被盗,密码泄露等危险事件。 于是为了提高安全性,就出现了双因素认证,多因素认证。登录的时候不仅要输入账号和密码还需要输入一个验证码…

C++模板进价

本期我们来学习C模板的进价内容,没有看过初阶的同学建议先看看初阶内容 (26条消息) C模板初阶_KLZUQ的博客-CSDN博客 目录 非类型模板参数 模板特化 函数模板特化 类模板特化 模板分离编译 模板总结 我们之前一直说我们写模板时,typename和class没…

FPGA2-采集OV5640乒乓缓存后经USB3.0发送到上位机显示

1.场景 基于特权A7系列开发板,采用OV5640摄像头实时采集图像数据,并将其经过USB3.0传输到上位机显示。这是验证数据流能力的很好的项目。其中,用到的软件版本,如下表所示,基本的硬件情况如下。该项目对应FPGA工程源码…

【雕爷学编程】Arduino动手做(129)---TTS文字转语音合成模块2

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…

【iOS】KVC KVO 总结

文章目录 KVC1. KVC赋值原理 setValue:forKey:2. KVC取值原理 valueForKey:3. 注意4. KVC的批量存值和取值 KVO 使用1. KVO的介绍2. KVO监听的步骤注册监听监听实现移除监听例子 3. KVO的传值4. KVO注意5. KVO的使用场景 KVO原理1. KVO的本质是改变了setter方法的调用2. _NSSet…

【图论】树上差分(边差分)

一.简介 其实点差分和边差分区别不大。 点差分中,d数组存储的是树上的节点 边差分中,d数组存储的是当前节点到父节点的那条边的差分值。 指定注意的是:边差分中因为根连的父节点是虚点,所以遍历结果时应当忽略! 二…

西安科技大学:融合传统与创新的学府之旅

文章目录 一、引言二、历史与发展三、学校特色四、学科建设五、校园环境与设施六、合作交流七、未来发展与展望 一、引言 西安科技大学历史悠久,底蕴深厚。学校办学历史可以追溯到1895年成立的北洋大学工学院采矿冶金科,1938年迁并于西北工学院矿冶系&a…

网络编程、网络编程的三要素、TCP/UDP通信、三次握手和四次挥手

🐌个人主页: 🐌 叶落闲庭 💨我的专栏:💨 c语言 数据结构 javaweb 石可破也,而不可夺坚;丹可磨也,而不可夺赤。 网络编程 一、初始网络编程1.1什么是网络编程1.2BS/CS的优…

时序预测 | MATLAB实现NARX-ANFIS时间序列预测

时序预测 | MATLAB实现NARX-ANFIS时间序列预测 目录 时序预测 | MATLAB实现NARX-ANFIS时间序列预测效果一览基本介绍研究内容程序设计参考资料效果一览

JS判断类型的方法和对应的局限性(typeof、instanceof和Object.prototype.toString.call()的用法)

JS判断类型的方法和对应的局限性(typeof、instanceof和Object.prototype.toString.call()的用法) 一、typeof 返回: 该方法返回小写字符串表示检测数据属于什么类型,例如: 检测函数返回function 可判断的数据类型&#xff1a…

【程序员面试金典】02.07. 链表相交

题目 解题思路 Code Java public ListNode getIntersectionNode(ListNode headA, ListNode headB) {if (headA null || headB null) return null;ListNode a headA;ListNode b headB;while (a ! b ) {a a ! null ? a.next : headB; b b ! null ? b.next : headA; …

MD-MTSP:成长优化算法GO求解多仓库多旅行商问题MATLAB(可更改数据集,旅行商的数量和起点)

一、成长优化算法GO 成长优化算法(Growth Optimizer,GO)由Qingke Zhang等人于2023年提出,该算法的设计灵感来源于个人在成长过程中的学习和反思机制。学习是个人通过从外部世界获取知识而成长的过程,反思是检查个体自…

cmake 配置Visual studio的调试命令

配置代码如截图: set_property(TARGET ${TARGET_NAME} PROPERTY VS_DEBUGGER_COMMAND "./consoleTest.exe") set_property(TARGET ${TARGET_NAME} PROPERTY VS_DEBUGGER_COMMAND_ARGUMENTS "./config/labelDriver.cfg") set_propert…

【LeetCode每日一题】——84.柱状图中最大的矩形

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 栈 二【题目难度】 困难 三【题目编号】 84.柱状图中最大的矩形 四【题目描述】 给定 n 个…

【LeetCode】142.环形链表Ⅱ

题目 给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部…

WPF线程使用详解:提升应用性能和响应能力

在WPF应用程序开发中,线程的合理使用是保证应用性能和响应能力的关键。WPF提供了多种线程处理方式,包括UI线程、后台线程、Task/Async Await和BackgroundWorker。这些方式与传统的Thread类相比,更加适用于WPF框架,并能够简化线程操…

RTPSv2.2(中文版)

实时发布订阅协议 (RTPS) DDS互操作性 有线协议规范 V2.2 (2014-09-01正式发布) https://www.omg.org/spec/DDSI-RTPS/2.2/PDF 目 录 1 范围Scope 9 2 一致性Conformance 9 3 参考文献References 9 4 术语和定义Terms a…

【fly-iot飞凡物联】(12):EMQX 5.1使用docker 本地部署,接入到Actorcloud的数据库中,成功连接创建的设备,可以控制设备访问状态

目录 前言1,关于2,使用docker 进行部署3,配置API key 可以使用接口访问的4,设置客户端认证,连接PostgreSQL 数据连接5,使用客户端进行连接6,EMQX的API 接口地址7,总结 前言 本文的原…

Vue2封装自定义全局Loading组件

前言 在开发的过程中,点击提交按钮,或者是一些其它场景总会遇到Loading加载框,PC的一些UI库也没有这样的加载框,无法满足业务需求,因此可以自己自定义一个,实现过程如下。 效果图 如何封装? 第…

Linux安装MySQL 8.1.0

MySQL是一个流行的开源关系型数据库管理系统,本教程将向您展示如何在Linux系统上安装MySQL 8.1.0版本。请按照以下步骤进行操作: 1. 下载MySQL安装包 首先,从MySQL官方网站或镜像站点下载MySQL 8.1.0的压缩包mysql-8.1.0-linux-glibc2.28-x…