当前位置: 首页 > news >正文

jenkins-node节点配置

一.简述:

 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进行构建。。

http://www.lryc.cn/news/523143.html

相关文章:

  • 计算机网络 (50)两类密码体制
  • 基于SpringBoot+Vue旅游管理系统的设计和实现(源码+文档+部署讲解)
  • 计算机网络-概述
  • Jenkins-基于Role的鉴权机制
  • 计算机网络介质访问控制全攻略:从信道划分到协议详解!!!
  • 5.若依 Configuration ConfigurationProperties 使用
  • 使用docker部署mysql和tomcat服务器发现的问题整理
  • 数据库开发支持服务
  • 通过学习更多样化的生成数据进行更广泛的数据分发来改进实例分割
  • NVIDIA视频编解码
  • GCC支持Objective C的故事?Objective-C?GCC只能编译C语言吗?Objective-C 1.0和2.0有什么区别?
  • 详解深度学习中的Dropout
  • SQL-杂记1
  • Python(十七)excel指定列自动翻译成英文
  • Ubuntu20.04取消root账号自动登录的方法,触觉智能RK3568开发板演示
  • 诡异的Spring @RequestBody驼峰命名字段映射失败为null问题记录
  • YOLOv10改进,YOLOv10检测头融合RFAConv卷积,添加小目标检测层(四头检测)+CA注意机制,全网首发
  • 周末总结(2024/01/18)
  • LLM - 大模型 ScallingLaws 的迁移学习与混合训练(PLM) 教程(3)
  • 【软件开发过程管理规范】需求管理,需求分析,设计开发管理,测试管理(Word)
  • 计算机网络 (49)网络安全问题概述
  • RPA编程实践:Electron实践开始
  • ORB-SLAM2源码学习:MapPoint.cc④: 新增地图点总结
  • 2025西湖论剑-babytrace
  • 绘图专用,26个常见流程图符号及其解释
  • 【个人学习记录】软件开发生命周期(SDLC)是什么?
  • 自学SpringBoot笔记
  • 03JavaWeb——Ajax-Vue-Element(项目实战)
  • [leetcode](找到vector中的特定元素并删除)无重复字符的最长子串
  • Mockito+PowerMock+Junit单元测试