jenkins-node节点配置方式解读

 更新时间:2025年08月20日 10:43:08   作者:运维经纬(公众号)  
Jenkins通过主从节点实现分布式构建,支持负载均衡和特定环境任务,配置包括标签匹配、启动方式、环境变量及工具管理,可参数化选择节点执行

简述

Jenkins有一个很强大的功能: 即:支持分布式构建(jenkins配置中叫节点(node),也被称为slave)。

分布式构建通常是用来吸收额外的负载。

通过动态添加额外的机器应对构建作业中的高峰期,或在特定操作系统或环境运行特定的构建作业。

这项功能在大中型企业(微服务化)环境中是很重要的。

关于jenkins master/slave

分布(master/slave)式构建工作模式是:

  • master负责处理调度构建作业,把构建通过定义的策略分发到slave节点进行执行。
  • 监视slave。
  • 并且记录和发布构建产物(即使在一个分布式架构中,master实例也是可以直接执行构建作业的),slave构建的结果和产物会同步到master。

master/slave策略:  

  • jenkins在配置管理slave节点时,我们可以针对不同的环境,选择不同的策略进行配置slave节点。

通常情况下可以通过以下几种方式:

  • master通过ssh启动slave节点。
  • 直接通过终端登录slave,命令行方式启动节点。
  • 支持windows。 

一个node的创建, 是很简单的(原生支持功能)。

  • 操作步骤:系统配置-->节点管理-->新增节点:

注: 上图中的jenkins master启动用户,需要和slave的root进行key 认证。 

配置简述:

  • 名字: 节点名称,建议规范化
  • of executors: jenkins最大构建并发数。官方建议设置为cpu核数相等。
  • 标签(labels): 重要,用于对多节点分组,根据slave的标签和job的标签进行匹配,slave只构建特定的标签任务(如:按项目分(appserver),将slave标记为appserver,job也标记为appserver,这样的话你的Job就不会运行在除了appserver节点以外的其它节点上了),支持多个,用空格隔开。

用法:

两种策略(尽可能使用(默认),和只运行绑定的job),根据不同环境决定.

启动方法(Launch method): 

 a). Launch slave agents via SSH:通过SSH通道连接节点(适用于Linux类系统,上图方式)   

b). Launch agent via execution of command on the Master:通过主节点的控制台连接节点(需要写script)   

c). Let Jenkins control this Windows slave as a Windows service:让Jenkins节点添加到Windows服务中(通常不用吧???)

Availability:    

a). Keep this slave on-line as much as possible:尽可能保持节点在线【推荐】   

b). Take this slave on-line according to a schedule:根据时间表在线(类似于Linux的定时任务)   

c). Take this slave on-line when in demand and off-line when idle:让Jenkins根据需求自动连接或者离线     

i). In demand delay:告诉Jenkins如果有Job需要在此节点构建,需要在任务队列等待多长时间才会进入任务状态进行构建     

ii). Idle delay:告诉Jenkins多少分钟内如果没有Job需要构建就离线

  • Environment variables: 环境变量,构建中使用
  • Tool Locations: 工具目录(用于替换系统设置的,如java版本,maven版本)

启动后,slave上应该有一个进程:

# ps -ef|grep jar
root      9602  8865  0 16:12 ?        00:00:00 bash -c cd "/home/jenkins_home" && java  -jar slave.jar

node也可以作为一个参数类型,被 “参数化构建过程”进行调用。 需要安装一个插件:Node and Label parameter plugin

  • 安装后,在创建job时,可选:

  • Build with Parameters页面显示如下:

 可选择具体node进行构建。。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Spring mvc AJAX技术实现原理解析

    Spring mvc AJAX技术实现原理解析

    这篇文章主要介绍了Spring mvc AJAX技术实现原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • 关于ApplicationContext的三个常用实现类

    关于ApplicationContext的三个常用实现类

    这篇文章主要介绍了关于ApplicationContext的三个常用实现类,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • java Class文件结构解析常量池字节码

    java Class文件结构解析常量池字节码

    这篇文章主要为大家介绍了java Class文件的整体结构解析常量池字节码详细讲解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • 如何使用MybatisPlus快速进行增删改查详解

    如何使用MybatisPlus快速进行增删改查详解

    增删改查在日常开发中是再正常不多的一个需求了,下面这篇文章主要给大家介绍了关于如何使用MybatisPlus快速进行增删改查的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • SpringBoot实现RabbitMQ监听消息的四种方式

    SpringBoot实现RabbitMQ监听消息的四种方式

    本文主要介绍了SpringBoot实现RabbitMQ监听消息的四种方式,包括@RabbitListener,MessageListener接口,MessageListenerAdapter适配器,@RabbitHandler这几种,感兴趣的可以了解一下
    2024-05-05
  • IntelliJ IDEA同步代码时版本冲突而产生出的incoming partial文件问题的解决办法

    IntelliJ IDEA同步代码时版本冲突而产生出的incoming partial文件问题的解决办法

    今天小编就为大家分享一篇关于IntelliJ IDEA同步代码时版本冲突而产生出的incoming partial文件问题的解决办法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • Java实现读取CSV文件并将数据放入对象

    Java实现读取CSV文件并将数据放入对象

    CSV文件是一种常见的数据存储格式,广泛应用于数据交换,日志记录和表格数据处理,在Java开发中,读取CSV文件并将数据映射到对象中是常见的需求,本文将详细介绍几种常见方法,有需要的可以了解下
    2025-06-06
  • Java 生成带Logo和文字的二维码

    Java 生成带Logo和文字的二维码

    这篇文章主要介绍了Java 生成带Logo和文字的二维码的方法,帮助大家更好的理解和学习使用Java,感兴趣的朋友可以了解下
    2021-04-04
  • SpringMVC框架实现图片上传与下载

    SpringMVC框架实现图片上传与下载

    这篇文章主要为大家详细介绍了SpringMVC框架实现图片上传与下载,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • 持久层ORM框架Hibernate框架的使用及搭建方式

    持久层ORM框架Hibernate框架的使用及搭建方式

    Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库,本文重点给大家介绍持久层ORM框架Hibernate框架的使用及搭建方式,感兴趣的朋友一起看看吧
    2021-11-11

最新评论