Jenkins之节点的使用

news2024/11/14 12:17:57

节点概念

Jenkins服务运行在一台服务器上,服务器的资源是有限的,Jenkins服务的构建速度受服务器资源影响,也是有限的。当我们需要构建的项目比较多或规模比较大的时候,可能会超出Jenkins的构建能力,超出其构建能力,导致构建任务堆积,严重的话会让服务崩溃。
单个Jenkins服务满足不了我们构建需求,但是多个Jenkins服务管理起来比较麻烦。我们可以以“分布式”的方法来维护构建数据,即Jenkins的节点概念。
节点,可以理解为是Jenkins的员工,我们部署的Jenkins服务是主节点,相当于领导。领导表示TA快忙死了,然后大老板知道后,就招了几个人(买服务器)作为领导的员工(节点),领导接到任务(构建任务)之后,就按照相关规则将任务分给员工,员工接收成功后就开始苦命的干活(执行命令),干活的时候将执行结果反馈给领导,领导接收反馈后更新构建结果(任务成功或失败等)。

总的来说,节点就是另一个服务器,这个服务器接收Jenkins主节点的命令并执行。我们一般叫Jenkins服务为主节点,主节点将构建任务分配到不同的节点。
在这里插入图片描述

节点配置

节点有多种配置方式,常用的是2种:agent代理和SSH登录
本文准备了2台linux服务器进行讲解。其中一台部署了Jenkins服务,另一台配置为节点。
节点的配置都是在【Manage Jenkins】下的【Nodes and Clouds】进行配置的
在这里插入图片描述
在这里插入图片描述
当前章节我们使用的可以触发构建任务的项目如下:

当前项目会下载源码:
在这里插入图片描述
当前项目会执行ip addr命令
在这里插入图片描述

接下来,我们还要再子节点上配置项目可运行的环境:配置java环境和安装git工具
根据项目内容,我们需要将子节点服务器的环境配置成可以运行项目。首先,子节点需要接收来自jenkins的java命令(jenkins是使用Java语言写的),所以需要配置java环境;然后我们的项目会下载gitee仓库代码,需要支持git命令,所以需要安装git工具。即子节点服务器需要配置java环境、安装git工具。

agent代理方式

agent代理方式是Jenkins默认就有的节点配置方式,该方式是主节点提供agent控制器,节点运行agent控制器来与主节点进行连接,主节点就可以通过该连接指挥agent节点干活。

步骤如下:

  • 1.在jenkins服务上配置agent子节点并保存
  • 2.子节点服务器中,下载指定的agent.jar,并执行指定的java -jar命令去连接主节点
  • 3.主节点执行构建任务

在这里插入图片描述
agent代理方式,是在子节点配置的时候,启动方式Launch method选择Launch agent by connecting it to the controller。这种方式是jenkins服务根据子节点的配置,生成一个agent.jar,子节点服务器下载agent.jar,并通过java命令运行agent.jar主动与jenkins主节点连接

配置并保存节点后,我们看到该节点是未连接的状态:
在这里插入图片描述
点击节点名称(Name),进入节点状态(Status)页面,找到需要在子节点对应的服务器上执行的命令
在这里插入图片描述
由于子节点服务器是Linux系统,所以执行“Run from agent command line: (Unix)”下的命令,我们可以看到,第2条命令是java命令,所以我们需要在子节点服务器中配置java环境,即安装jdk,linux安装jdk的步骤参考这篇博客(Jenkins入门),配置好java环境后,执行相关命令,执行情况如下:
在这里插入图片描述
子节点服务器执行了指定的命令后,稍等几分钟,在jenkins服务的子节点列表页面,可以看到子节点连接状态为已连接
在这里插入图片描述
连接成功后,我们去配置项目,触发项目的构建:
在这里插入图片描述
项目构建成功后,我们在主节点服务器只能看到一些构建日志
在这里插入图片描述
实际工作目录workspace是在子节点服务器的指定路径(Remote root directory字段的绝对路径)中
在这里插入图片描述

在这里插入图片描述

SSH连接方式

SSH连接方式,是主节点通过配置的ssh信息(凭证等),通过ssh登录的方式登录到子节点,是主节点主动连接子节点。
Jenkins节点启动方式默认支持agent代理方式的,如果想要支持SSH,则需要安装SSH Build Agents插件
在这里插入图片描述
需要创建一个子节点服务器的登录凭证,路径:【Manage Jenkins】–>【Manage Credentials】,Domain选择“global”,点击“Add Credentials”添加登录凭证
在这里插入图片描述

入门示例

凭证的种类有多种,我们先用Username with password的方式
在这里插入图片描述
在这里插入图片描述
凭证添加完成后,我们去新增节点,路径:【Manage Jenkins】–>【Nodes and Clouds】,点击“New Node”新增节点,然后配置节点
在这里插入图片描述

相关字段说明:

  • Remote root directory:远程根目录(绝对路径),相当于Jenkins根目录,存放项目的workspace(有代码下载的话会下载到这里)和ssh连接工具(比如remoting.jar)
  • Launch method:启动方式,如果是要使用ssh登录方式,则选择Launch agents via SSH(需要安装SSH Build Agents插件)
  • Host:子节点对应服务器的公网IP地址
  • Credentials:凭证,即SSH登录凭证(登录信息),选择我们前面步骤创建的凭证
  • Host Key Verification Strategy:主机密钥验证策略,如果是SSH用户密码的凭证进行连接的话,选择“Non verifying Verification Strategy”策略,如果是密钥的方式,则选择"Known hosts file Verification Strategy“策略
  • JavaPath:由于jenkins是用java语言写的,相关的操作也是java命令,所以子节点服务器上必须配置java环境,如果是Linux系统,可以使用 which java 获取到java环境路径
  • Remoting Work directory:远程工作目录(绝对路劲),即jenkins子节点的工作路径,存放一些构建日志数据(比如remoting)。如果未设置(为空)的话,则默认使用Remote root directory字段的路径

节点配置好后,点击Save按钮进行保存,主节点会自动去连接子节点,我们可以通过子节点的【Log】去查看ssh连接情况:
在这里插入图片描述
我们也可以在节点列表中查看连接情况:
在这里插入图片描述
连接过程中,也会在远程根目录(Remote root directory)下生成remoting.jar
在这里插入图片描述
ssh连接成功后,接下来我们去触发项目构建:
在这里插入图片描述
构建结束后,我们从此次构建的Console Output中查看构建日志
在这里插入图片描述

ssh凭证设置

ssh连接方式设置步骤中,我们需要先去创建ssh登录凭证,从截图中可以看到,ssh登录凭证的设置有多种方式,具体的使用如下:

  • Username with password
  • SSH Username with private key
  • Secret file
  • Secret text

常用的是Username with passwordSSH Username with private key

SSH Username with private key
步骤1:在Jenkins主节点上生成密钥,命令:ssh-keygen -t rsa

在这里插入图片描述

步骤2:进入jenkins目录,获取私钥和公钥

在这里插入图片描述

步骤3:将私钥配置到凭证credentials中

在这里插入图片描述
新建credentials,配置说明如下:

  • Kind:这里我们介绍SSH Username with private key的用法,就选择这个
  • Scope:范围,即该凭证在哪里可以使用
  • ID:凭证ID,不重复就行
  • Description:凭证描述,在节点配置时方便区分凭证
  • Username:ssh登录子节点时的用户
  • Private Key:SSH Username with private key时,必须勾选,并将主节点服务器生成的id_rsa文件内容复制到key中
步骤4:将主节点服务器生成的公钥id_rsa.pub的文本内容,复制到子节点服务器的/{用户名}/.ssh目录下的authorized_keys文件中。如果没有.ssh目录,可以自己创建:
mkdir -p ~/.ssh
touch ~/.ssh/authorized_keys

chmod -R 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

创建后将id_rsa.pub文本内容复制到authorized_keys文件中(linux系统可以使用vi命令)
在这里插入图片描述

步骤5:配置子节点

子节点的配置与【SSH连接方式】的Username with password示例基本相同,只有以下几个字段配置不同:

  • Credentials:选择步骤3:将私钥配置到凭证credentials中步骤中创建的凭证
  • Host Key Verification Strategy:如果主节点服务器有通过ssh连接子节点服务器成功过,则可以选择Known hosts file Verification Strategy;否则,选择Manually provided key Verification Strategy
  • Remote root directory设置成"/root/test/jenkins_test/ssh_key",Remoting Work directory为空

在这里插入图片描述连接成功后,就可以触发构建任务了。

其他配置

Labels

Labels是主节点通过项目的Label进行匹配,将构建任务发给Labels匹配的子节点。
项目中的配置:
在这里插入图片描述
子节点没有配置Labels,主节点配置了Labels为"wen",所以项目在主节点运行:
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

el-table合计行单元格合并、单元格样式修改

1、目标效果 源码放在下面,复制粘贴即可 (1)合计行放在头部,且字体颜色变粗、合计行背景色变粗 (2)合计行年龄算平均值且字体颜色为绿色,财产算总数且字体颜色为红色 2、原理 2.1、el-table中s…

clickhosue:8123和9000

8123和9000是ClickHouse数据库的两个不同的端口,它们具有不同的功能和使用方式。 8123端口(HTTP端口): 用于通过HTTP协议与ClickHouse数据库进行交互。 支持RESTful API和HTTP查询语法。 可以使用浏览器、curl等工具发送HTTP请…

【备战秋招】每日一题:4月8日美团春招第四题:题面+题目思路 + C++/python/js/Go/java带注释

为了更好的阅读体检,为了更好的阅读体检,,可以查看我的算法学习博客第四题-田地行走 在线评测链接:P1169 题目描述 塔子哥是一个农民,他有一片 大小的田地,共 n 行 m 列,其中行和列都用从 1 开始的整数…

lua中chunk的理解

在Lua中,一个chunk是一段可执行的Lua代码。通常,一个chunk由一系列语句和表达式组成,可以是一个完整的程序文件,也可以是一个交互式控制台中输入的一行代码。 例如,下面是一个简单的Lua chunk: print(&qu…

阿里巴巴最新30万字1008道Java经典面试题总结(附答案)限时开源

前言 在备战面试的时候,大家总会通过刷题的方式来准备,然而刷题是有用没错,有时候还得看看押题能不能压中重点,大厂喜欢问些什么技术点,不然当那个笑眯眯的面试官问出那些你再熟悉不过的问题 Java 问题时,…

vue2.x项目引入CKEditor4的两种方式

百度用了不行的看过来&#xff0c;本文专治各种流程不通的 一.直接npm下载型 下载ckeditor到vue项目 npm install ckeditor4-vue2.在main.js里导入 import Vue from vue; import CKEditor from ckeditor4-vue;Vue.use( CKEditor );3.在需要使用的组件里这样使用 <templ…

day54_spring整合mybatis

SpringMybatis整合【重点】 Spring学完了,主要学习Spring两个内容:IOCAOP 利用这两个知识来完成spring和mybatis的整合 IOC: 控制反转,用来创建对象 XxxService通过数据源创建数据库连接创建SqlSessionFactory创建SqlSession获得XxxMapper代理对象 AOP: 面向切面 控制事务 具体…

基于spring的前后端一体化积分商城系统

系统介绍 积分商城系统是一个基于Spring、MySQL和Redis等技术栈构建的全功能商城解决方案。该系统旨在为用户提供一个便捷的购物体验&#xff0c;并以积分作为支付和奖励的核心机制。 系统的核心功能包括商品浏览、购买下单、积分管理和订单处理。用户可以通过客户端访问系统…

一业余无线电爱好者因违规被罚2.4万美元,是否合理?

据一份名为《关于处罚款项的通知》&#xff0c;美国联邦通信委员会经过调查&#xff0c;对加利福尼亚州的一名业余无线电持有人菲利普J博代特&#xff08;业余电台呼号&#xff1a;N6PJB&#xff09;&#xff0c;处以巨额罚款&#xff0c;罚款金额为2.4万美元&#xff0c;折合人…

颠覆2D对象检测模型,MediaPipe 3D对象检测还原真实的对象特征

关于对象检测,我们以前分享的文章都是介绍的2D的对象检测,但是我们很多使用场景下,希望检测到的对象能够以3D的影像呈现出来,本期介绍的MediaPipe Objectron便是是用于日常对象的移动实时3D对象检测解决方案。它检测2D图像中的对象,并通过在Objectron数据集上训练的机器学…

6.17黄金反弹是否到顶,下周开盘如何布局

近期有哪些消息面影响黄金走势&#xff1f;下周黄金多空该如何研判&#xff1f; ​黄金消息面解析&#xff1a;黄金周五(6月16日)小幅收高&#xff0c;但在触及5月以来最低盘中水准后本周以下跌收官。美市尾盘&#xff0c;现货黄金收报1957.68美元/盎司&#xff0c;下跌0.19美…

干货|来自新加坡管理大学、KAUST的大模型最新进展:推荐系统、未来AI社会研究……...

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; ChatGPT的横空出世刷新了我们对这个世界的认知和想象&#xff0c;而大型语言模型也逐渐成为学术界的研究热点。在自然语言处理、智能推荐、知识获取、智能对话等领域&#xff0c;大模型发挥着越来越重要的作用。…

自然语言处理从入门到应用——词向量的评价方法

分类目录&#xff1a;《自然语言处理从入门到应用》总目录 对于不同的学习方法得到的词向量&#xff0c;通常可以根据其对词义相关性或者类比推理性的表达能力进行评价&#xff0c;这种方式属于内部任务评价方法&#xff08;Intrinsic Evaluation&#xff09;。在实际任务中&am…

Linux学习[15]bash学习深入1---bash的功能---变量详解

文章目录 前言&#xff1a;1. bash功能2. 变量2.1 变量赋值2.2 unset取消变量2.3 环境变量 总结 前言&#xff1a; 之前在学树莓派相关内容的时候&#xff0c;对bash脚本的简单上手做了一个总结&#xff0c;并且归纳到下面三个博客。 当时参考的书为《从树莓派开始玩转linux》…

Gitlab CI/CD入门(一)Python项目的CI演示

本文将介绍CI/CD的基本概念&#xff0c;以及如何使用Gitlab来实现CI/CD。   本文介绍的CI/CD项目为个人Gitlab项目&#xff1a;gitlab_ci_test&#xff0c;访问网址为&#xff1a;https://gitlab.com/jclian91/gitlab_ci_test。 CI/CD的含义 在现代软件工程中&#xff0c;CI…

【主跑例子】 Framework01、02;QFramework00(我跟着视频的旧版本,但推荐用最新的)、01(无)、02(无)、03(无)

总体介绍 做的是 00,10,13&#xff0c;考虑做10。 11,12没下载&#xff0c;当时把这两个误认为 00,10 用到了UniRx Framework有2个 00 Unity 游戏框架搭建 2019 第一季 C# 核心知识与简易 Manager Of Managers 框架搭建 120课数 01 Unity 游戏框架搭建 2019 第二季 模块/系统…

前端Vue仿滴滴打车百度地图定位查找附近出租车或门店信息(更新版)

前端vue仿滴滴打车百度地图定位查找附近出租车或门店信息, 下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id12982 效果图如下: # #### 使用方法 使用方法 <!-- 官方文档&#xff1a; https://dafrok.github.io/vue-baidu-map/#/zh/start/b…

五子棋:起源、原理与游戏规则、vue实现五子棋案例游戏

目录&#xff1a; 引言五子棋的历史背景五子棋的原理五子棋的游戏规则五子棋游戏的实现 5.1 创建 Vue 组件 5.2 初始化棋盘 5.3 下棋与判断胜负 5.4 渲染棋盘与棋子总结 更多知识 学习&#xff1a;https://www.processon.com/view/60504b5ff346fb348a93b4fa#map 引言 五子棋…

解密大型语言模型:从相关性中发现因果关系?

深度学习自然语言处理 原创作者&#xff1a;wkk 因果推理是人类智力的标志之一。因果关系NLP领域近年来引起了人们的极大兴趣&#xff0c;但其主要依赖于从常识知识中发现因果关系。本研究提出了一个基准数据集(CORR2CAUSE)来测试大语言模型(LLM)的纯因果推理能力。其中CORR2CA…

I/O体系结构和设备驱动程序(一)

I/O体系结构 让信息在CPU、RAM和I/O设备之间流动的数据通路称之为总线&#xff0c;即计算机内的主通信通道。所有计算机都有一条系统总线&#xff08;一种典型的系统总线是PCI总线&#xff09;&#xff0c;连接内部大部分的硬件设备。计算机内不同的总线可以通过“桥”进行连接…