【Jenkins】节点 node、凭据 credentials、任务 job
一、节点 node
Jenkins在安装并初始化完成后,会有一个主节点(Master Node),默认情况下主节点可以同时运行的任务数是2,可以在节点配置中修改(系统管理/节点和云管理)。
Jenkins中的节点(Node)是指用于执行构建任务的计算机或计算机集群。节点可以是物理计算机,也可以是虚拟机。Jenkins节点的主要作用是提供一个运行环境,使得构建任务可以在节点上执行。
Jenkins节点的配置和管理可以通过以下方式进行:
-
在Jenkins的管理界面中配置:在Jenkins的管理界面中,可以添加、编辑和删除节点。可以指定节点的名称、描述、标签等信息,并配置节点的连接方式和认证信息。
-
使用Jenkins CLI:Jenkins提供了命令行接口(CLI),可以使用CLI命令来配置和管理节点。通过CLI,可以添加、编辑、删除节点,以及设置节点的属性和参数。
-
使用Jenkins API:Jenkins还提供了API接口,可以通过API来配置和管理节点。通过API,可以使用各种编程语言编写脚本或程序来操作节点,实现自动化的节点管理。
Jenkins节点可以分为两种类型:
-
主节点(Master Node):主节点是Jenkins的核心节点,负责管理整个Jenkins系统的配置和任务分发。主节点可以执行一部分构建任务,但通常不建议在主节点上执行耗时较长或资源占用较高的任务,以免影响Jenkins的整体性能。
-
代理节点(Agent Node):代理节点是由主节点管理的其他计算机或计算机集群。代理节点可以执行构建任务,并将结果返回给主节点。代理节点可以根据需要添加多个,以提供更多的计算资源和并行执行能力。
通过将构建任务分配到不同的节点上执行,可以实现并行执行、负载均衡和资源隔离等功能。节点可以根据不同的需求进行配置,例如可以指定节点的标签,以便在构建任务中选择特定的节点执行。
总结来说,Jenkins中的节点是用于执行构建任务的计算机或计算机集群,可以通过配置界面、CLI或API进行配置和管理,可以分为主节点和代理节点,用于实现任务执行的并行化、负载均衡和资源隔离。
创建节点
点击系统管理/节点和云管理,然后点击“New Node”创建节点,输入节点名称(比如 node1),选择固定节点,然后点击Create按钮创建节点。
输入节点详细信息,节点通常是在其他机器上,这里要输入链接其他的其他的参数,首先要创建好凭据。
输入关键参数名字、远程工作目录(这是节点服务器上面的路径)、主机ip、凭据 credentials(要先创建好)、Host Key Verification Strategy选择“Non verifying..”
不验证证书,然后点击保存。
保存后,节点需要启动并初始化,需要1-2分钟时间,可以点击查看启动日志,启动完成后,可以看见节点变成已同步
二、凭据 credentials
Jenkins中的凭据是用于存储敏感信息的一种机制。凭据可以是用户名和密码、SSH密钥、OAuth令牌等。Jenkins可以使用凭据来访问远程服务器、下载文件、解压缩文件等。
Jenkins中的凭据可以分为两种类型:系统凭据和用户凭据。系统凭据是所有用户都可以使用的凭据,用户凭据是特定用户可以使用的凭据。
要创建一个凭据,可以通过以下步骤操作:
- 在Jenkins的管理页面中,点击凭据。
- 点击系统凭据或用户凭据。
- 点击创建凭据。
- 填写凭据的名称、类型、值等信息。
- 点击创建。
凭据创建时最好明确输入凭据ID,如果不输入系统会自动生成,在使用的时候,输入或选择对应的凭据ID即可。
Jenkins中的凭据可以有效地保护敏感信息,避免泄露。但是,要注意不要将凭据保存在公共存储中,以免被他人访问。
创建凭据
点击系统管理/凭据管理,系统全局凭据,也可以是用户凭据(就是另外创建一个域)。
以用户名密码凭据为例:输入用户名、密码、以及ID,点击Create即可
三、任务 job
在Jenkins中,任务(Job)是指要执行的特定操作或一系列操作的定义。任务可以是构建项目、部署应用程序、运行测试等。Jenkins中的任务通过配置和设置来定义其行为和执行方式。
以下是Jenkins中任务(Job)的一些重要概念和要点:
-
任务类型:Jenkins支持多种任务类型,例如自由风格项目、流水线项目、多配置项目等。每种任务类型都有不同的配置选项和执行方式。
-
构建触发器:任务可以通过不同的触发器来触发构建操作。常见的触发器包括定时触发、版本控制系统的变更触发、其他任务的成功触发等。
-
构建步骤:任务可以定义一系列的构建步骤,每个步骤执行特定的操作。例如,可以包括代码拉取、编译、测试、部署等步骤。
-
构建参数:任务可以定义输入参数,允许用户在执行任务时提供参数值。参数可以是文本、下拉列表、布尔值等类型。
-
构建环境:任务可以定义构建环境,包括设置环境变量、配置工具路径、指定构建代理节点等。
-
构建历史和报告:Jenkins会记录每次任务的构建历史,包括构建状态、执行时间、控制台输出等。任务还可以生成构建报告,用于查看构建结果和分析构建过程。
-
插件扩展:Jenkins提供了丰富的插件生态系统,可以扩展任务的功能和特性。通过安装和配置插件,可以实现更多的自定义和集成。
通过配置和管理任务,可以实现自动化的构建、测试和部署流程。Jenkins任务的配置可以通过Jenkins的Web界面进行,也可以通过Jenkins提供的CLI或API进行。任务的配置可以导出和导入,方便在不同的Jenkins实例之间共享和复用。
总结来说,Jenkins中的任务(Job)是指要执行的特定操作或一系列操作的定义。任务通过配置和设置来定义其行为和执行方式,包括触发器、构建步骤、构建参数、构建环境等。通过任务的配置和管理,可以实现自动化的构建、测试和部署流程。
1、node1服务器需要先做如下配置
这里假设任务在node1节点执行。
1)安装git,git指令
yum install git
2)配置maven环境,mvn指令
以版本apache-maven-3.8.2
为例,先下载maven压缩包apache-maven-3.8.2-bin.zip
上传到服务目录/opt/maven/
,然后解压,得到maven源文件目录/opt/maven/apache-maven-3.8.2
,配置环境变量/etc/profile
# 解压maven压缩包
unzip apache-maven-3.8.2-bin.zip
# 配置环境变量,创建文件 maven.sh
vim /etc/profile.d/maven.sh
在maven.sh中插入以下内容
MAVEN_HOME=/opt/maven/apache-maven-3.8.2
PATH=$MAVEN_HOME/bin:$PATH
export PATH
保存,让环境变量生效
source /etc/profile
输入命令 mvn -v
试试,maven配置成功!
[root@localhost apache-maven-3.8.2]# mvn -v
Apache Maven 3.8.2 (ea98e05a04480131370aa0c110b8c54cf726c06f)
Maven home: /opt/maven/apache-maven-3.8.2
Java version: 17.0.9, vendor: Oracle Corporation, runtime: /usr/lib/jvm/jdk-17-oracle-x64
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.102.1.el7.x86_64", arch: "amd64", family: "unix"
[root@localhost apache-maven-3.8.2]#
注意,mvn环境配置完成后,需要重启Jenkins服务
2、创建任务
这里以从git仓库中拉取项目并编译打包的pipeline任务为例。
输入任务名称(如:build_test),选择“流水线”
在pipeline中输入以下内容:
node('node1') {stage("pull code") {git branch: 'master', credentialsId: 'gitee_wlddhj', url: 'https://gitee.com/personal_practice/demo.git'}stage("build") {sh label: '', script: '''mvn clean package -Dmaven.test.skip=true -f pom.xml'''} stage("release") {sh label: '', script: '''cp target/*.jar /data/product/deploy/'''}stage("start") {ansiColor('xterm') {sh "JENKINS_NODE_COOKIE=dontKillMe nohup java -jar /data/product/deploy/spring-demo-0.0.1-SNAPSHOT.jar > demo.log &"}}
}
注意:
- 从git拉取代码需要秘钥,上面例子假设已经创建了一个凭据
gitee_wlddhj
- 这里以示例工程spring-demo作为演示,打包后台jar名称是
spring-demo-0.0.1-SNAPSHOT.jar
- 在shell环境中使用nohup,并且& 某个程序后,会后台执行,退出当前链接后程序依然可以执行。 但是在Jenkins的pipeline中,nohup,在Jenkins编译任务结束时,运行的程序会自动退出。针对该解决办法是设置系统环境变量
JENKINS_NODE_COOKIE=dontKillMe
3、执行任务
上面任务创建完成后就可以执行了。
点击“立即构建”,右边会显示执行进度,如果报错了,可以点进去看具体的执行日志
相关文章:
【Jenkins】节点 node、凭据 credentials、任务 job
一、节点 node Jenkins在安装并初始化完成后,会有一个主节点(Master Node),默认情况下主节点可以同时运行的任务数是2,可以在节点配置中修改(系统管理/节点和云管理)。 Jenkins中的节点&#…...
华为OD机试 - 高效货运(Java JS Python C)
题目描述 老李是货运公司承运人,老李的货车额定载货重量为 wt。 现有两种货物: 货物 A 单件重量为 wa,单件运费利润为 pa货物 B 单件重量为 wb,单件运费利润为 pb老李每次发车时载货总重量刚好为货车额定的载货重量 wt,车上必须同时有货物 A 和货物 B ,货物A、B不可切割…...
基于python netmiko去ssh备份网络设备配置
自己为了便利写出来的基于python netmiko去ssh备份网络设备配置,用过secureCRT的脚本去备份设备配置,但是它没有图形化界面,使用不方便,自己就重新用python开发了一个,同时用pyinstaller打包成可执行程序(这…...
【CCF BDCI 2023】多模态多方对话场景下的发言人识别 Baseline 0.71 Slover 部分
【CCF BDCI 2023】多模态多方对话场景下的发言人识别 Baseline 0.71 Slover 部分 概述Solver 在多模态发言人识别中的作用Solver 在多模态发言人识别中的重要性Solver 的工作原理 二次规划二次规划的基本形式二次规划的特点二次规划在多模态发言中的应用 (我的理解) 代码详解数…...
爬虫工作量由小到大的思维转变---<第十二章 Scrapy之sql存储与爬虫高效性的平衡艺术>
前言: (本文仅属于技术性探讨,不属于教文) 刚好,前阵子团队还在闲聊这个问题呢。你知道吗,在数据收集这个行当里,怎么存数据这问题就跟“先有鸡还是先有蓝”一样,没完没了的循环往复。老规矩,咱们先搞清楚我们的“鸡…...
修改Docker0和容器的地址
修改Docker0和容器的地址 1. 需求 默认服务器安装完Docker-ce后会给docker0分配172.17.0.1/16地址. 公司新接入一个网段正好与172.17.0.1/16冲突,此时访问这台服务器的容器时就会发生网络不可达. 2. 解决方法 修改/etc/docker/daemon.json 加入一个自定义网段 vim /etc/d…...
弹性网络优化算法
3.3、Elastic-Net算法使用 这是scikit-learn官网给出的弹性网络回归的,损失函数公式,注意,它用的矩阵表示,里面用到范数运算。 min w 1 2 n samples ∣ ∣ X w − y ∣ ∣ 2 2 α ρ ∣ ∣ w ∣ ∣ 1 α ( 1 − ρ ) 2 ∣ ∣…...
[C语言]大小端及整形输出问题
假设在一个32位little endian 的机器上运行下面的程序,结果是多少 ? 1.1先看以下三个程序 #include <stdio.h> int main() {long long a 1, b 2, c 3;printf("%lld %lld %lld\n", a, b, c); // 1 2 3printf("%d %d %d %d %d %d\n&quo…...
C# 命令行参数解析库示例
写在前面 在日常开发中,我们经常会用到命令行参数,比如cmd下的各种指令;还有C#的控制台类型的项目,在默认入口Main函数中,那个args参数,就是有系统传入到程序进程的命令行参数;在传入的参数相对…...
2020 年网络安全应急响应分析报告
2020 年全年奇安信集团安服团队共参与和处置了全国范围内 660起网络安全应急响应事件。2020 年全年应急响应处置事件行业 TOP3 分别为:政府部门行业(146 起)医疗卫生行业(90 起)以及事业单位(61 起,事件处置数分别占应急处置所有行业的 22.1%、13.6%、9.2%。2020 年…...
Git----学习Git第一步基于 Windows 10 系统和 CentOS7 系统安装 Git
查看原文 文章目录 基于 Windows 10 系统安装 Git 客户端基于 CentOS7 系统安装部署 Git 基于 Windows 10 系统安装 Git 客户端 (1)打开 git官网 ,点击【windows】 (2)根据自己的电脑选择安装,目前一般w…...
爬虫 scrapy ——scrapy shell调试及下载当当网数据(十一)
目录 一、scrapy shell 1.什么是scrapy shell? 2.安装 ipython 3.使用scrapy shell 二、当当网案例 1.在items.py中定义数据结构 2.在dang.py中解析数据 3.使用pipeline保存 4.多条管道的使用 5.多页下载 参考 一、scrapy shell 1.什么是scrapy shell&am…...
Linux驱动(中断、异步通知):红外对射,并在Qt StatusBus使用指示灯进行显示
本文工作: 1、Linux驱动与应用程序编写:使用了设备树、中断、异步通知知识点,实现了红外对射状态的异步信息提醒。 2、QT程序编写:自定义了一个“文本指示灯”类,并放置在QMainWidget的StatusBus中。 3、C与C混合编程与…...
echarts地图的常见用法:基本使用、区域颜色分级、水波动画、区域轮播、给地图添加背景图片和图标、3d地图、飞线图
前言 最近几天用echarts做中国地图,就把以前写的demo:在vue中实现中国地图 拿来用,结果到项目里直接报错了,后来发现是因为版本的问题,没办法只能从头进行踩坑了。以下内容基于vue3 和 echarts 5.32 基本使用 获取地…...
进程间通讯-管道
介绍 管道(Pipe)是操作系统提供的一种进程间通信(IPC,Inter-Process Communication)机制,它允许一个进程的输出直接作为另一个进程的输入。管道主要分为以下两种类型: 无名管道(Unn…...
项目总结-自主HTTP实现
终于是写完了,花费了2周时间,一点一点看,还没有扩展,但是基本功能是已经实现了。利用的是Tcp为网络链接,在其上面又写了http的壳。没有使用epoll,多路转接难度比较高,以后有机会再写,…...
Java语言+二维数组+非递归实现五子棋游戏
以前做过一个C语言版五子棋:C语言+二维数组+非递归实现五子棋游戏 现在做一个Java语言版五子棋,规则如下: 1、白子为O; 2、黑子为; 3、白子先手;…...
WordCloud—— 词云
【说明】文章内容来自《机器学习入门——基于sklearn》,用于学习记录。若有争议联系删除。 wordcloud 是python的第三方库,称为词云,也成文字云,可以根据文本中的词频以直观和艺术化的形式展示文本中词语的重要性。 依赖于pillow …...
linux网络----UDP编程
一、函数接口: 1.socket:创建一个用来网络通信的终端节点; 参数: type:套接字类型 SOCK_STREAM 流式套接字 TCP SOCK_DGRAM 数据报套接字 UDP SOCK_RAM 原始套接字 domain: 协议族 AF_INET protocal: 默认为0 2.s…...
[AI工具推荐]AiRestful智能API代码生成
智能API代码示例生成工具AiRestful 一、产品介绍二、如何使用1、第一步(必须):2、第二步(可选):3、第三步(智能生成): 三、如何集成到您的网站(应用)1、开始接入2、接入案例 四、注意点 一、产品介绍 AiRestful是一款基于智能AI的,帮助小白快速生成任意编程语言的API接口调用示…...
Elasticsearch 8.10.0同义词API用法详解,支持同义词热更新
Elasticsearch 的同义词功能非常强大,如果使用得当,可以显着提高搜索引擎的效果。使用同义词功能时的一个常见问题是更新同义词集。 同义词在搜索引擎领域用途 同义词在搜索引擎领域的用途可概括如下: 增强搜索的准确性——当用户输入一个关键词时,可能与他们实际意图相关…...
深度学习之模型权重
在深度学习中,模型的权重(weights)是指神经网络中的参数,这些参数用于调整和学习模型的行为,以便能够对输入数据进行有效的映射和提取有用的特征。深度学习模型通常由许多神经元和连接组成,而权重就是连接这…...
纯前端使用XLSX导出excel表格
1 单个sheet page.js(页面中的导出方法) import { exportExcel } from ../../../utils/exportExcel.js; leadOut() {const arr [{ id: 1, name: 张三, age: 14, sex: 男 },{ id: 2, name: 李四, age: 15, sex: 女 },{ id: 3, name: 王五, age: 16, sex: 男 },];const allR…...
将mjpg格式数转化成opencv Mat格式
该博客可以解决如下两个问题: 1、将mjpg格式数据转化成opencv Mat格式 2、v4l2_buffer 格式获取的mjpg格式数据转换成Mat格式。 要将 MJPEG 格式的数据转换为 OpenCV 的 Mat 格式,您可以使用 imdecode 函数。imdecode 函数可以将图像数据解码为 Mat 对象…...
【golang/g3n】3D游戏引擎G3N的windows安装与测试
目录 说在前面安装测试 说在前面 操作系统:win 11go version:go1.21.5 windows/amd64g3n版本:github.com/g3n/engine v0.2.0其他:找了下golang 3d相关的库,目前好像就这个比较活跃 安装 按照官方教程所说,…...
sap table 获取 valuation class MBEW 查表获取
参考 https://www.tcodesearch.com/sap-tables/search?qvaluationclass...
介绍一些操作系统—— Ubuntu 系统
介绍一些操作系统—— Ubuntu 系统 Ubuntu 系统 Ubuntu 是一个以桌面应用为主的 Linux 发行版操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu"一词,意思是“人性”“我的存在是因为大家的存在",是非洲传统的一种价值观。U…...
React中props 和 state异同初探
在 React 中,props 和 state 是两个非常重要的概念,它们决定了组件的行为和渲染方式。 Props props(属性)是父组件传递给子组件的数据。它们类似于函数的参数,可以在组件内部被访问和使用,但不能被修改。…...
spring-kakfa依赖管理之org/springframework/kafka/listener/CommonErrorHandler错误
问题: 整个项目使用spring-boot2.6.8版本,使用gradle构建,在common模块指定了implementation org.springframework.kafka:spring-kafka:2.6.8’这个工程也都能运行(这正常发送kafka消息和接收消息),但是执行…...
基于go语言开发的海量用户及时通讯系统
文章目录 二十三、海量用户即时通讯系统1、项目开发前技术准备2.实现功能-显示客户端登录菜单3.实现功能-完成用户登录-1.完成客户端可以该长度值发送消息长度,服务器端可以正常接收到-2.完成客户端可以发送消息,服务器端可以接收到消息并根据客户端发送…...
网站建设经营范围/谷歌网页版入口
更多实例例子 1移除字符串两侧的空格:$str " Hello World! ";echo "不使用 trim: " . $str;echo "";echo "使用 trim: " . trim($str);?>以上代码的 HTML 输出如下(请查看源代码):不使用 trim: Hello Worl…...
网站建设的好处论文/seo优化师
提要光线在图形学中可以简单地用向量来表示:r(t) o td, o表示光线的出发点,d表示光线的方向,通常是单位向量,r表示光线在t时刻的位置。光线求交在图形学中有着非常重要的应用,比如Global Illumination,collision det…...
网站的导航页怎么做/网站免费制作平台
运行模式是Unity使用过程中的核心要素。随着Unity项目变得更加复杂,进入运行模式会需要更多的时间。进入和退出运行模式的速度越快,意味着开发者进行关卡修改和测试的速度也就越快。我们在Unity 2019.3 Beta版中推出一项实验性功能:Configura…...
阜阳商城网站建设/seo外链友情链接
准备环境:VS.2003, windows2003(IIS6.0)SP1因为偶然的原因,需要调试几个asp页面,但手动上只有UltraEdit和VS.net.知道InterDev可以调试,可以装起来以后,总是出错。我本身对其也不熟悉,也没时间摸索…...
邯郸做移动网站价格/外贸网站推广方式
文章目录1.回顾2.EnableWebMvc WebMvcConfigurer接口的使用原理3.总结1.回顾 根据之前的文章, 之前自定义的组件放入了容器中, 但是DispatcherServlet会使用自定义的组件而放弃了默认组件, 导致很多功能都失效了。 所以EnableWebMvc WebMvcConfigurer就是解决这个问题的 C…...
资源搜索/重庆seo网站推广优化
MVCC(Mutil-Version Concurrency Control)MVCC 是一种多版本并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问。在Mysql的InnoDB引擎中就是指在已提交读(READ COMMITTD)和可重复读(REPEATABLE READ)这两种隔离级别下的事务对于SELECT操作会…...