【Jenkins】节点 node、凭据 credentials、任务 job

一、节点 node

Jenkins在安装并初始化完成后,会有一个主节点(Master Node),默认情况下主节点可以同时运行的任务数是2,可以在节点配置中修改(系统管理/节点和云管理)。

Jenkins中的节点(Node)是指用于执行构建任务的计算机或计算机集群。节点可以是物理计算机,也可以是虚拟机。Jenkins节点的主要作用是提供一个运行环境,使得构建任务可以在节点上执行。

Jenkins节点的配置和管理可以通过以下方式进行:

  1. 在Jenkins的管理界面中配置:在Jenkins的管理界面中,可以添加、编辑和删除节点。可以指定节点的名称、描述、标签等信息,并配置节点的连接方式和认证信息。

  2. 使用Jenkins CLI:Jenkins提供了命令行接口(CLI),可以使用CLI命令来配置和管理节点。通过CLI,可以添加、编辑、删除节点,以及设置节点的属性和参数。

  3. 使用Jenkins API:Jenkins还提供了API接口,可以通过API来配置和管理节点。通过API,可以使用各种编程语言编写脚本或程序来操作节点,实现自动化的节点管理。

Jenkins节点可以分为两种类型:

  1. 主节点(Master Node):主节点是Jenkins的核心节点,负责管理整个Jenkins系统的配置和任务分发。主节点可以执行一部分构建任务,但通常不建议在主节点上执行耗时较长或资源占用较高的任务,以免影响Jenkins的整体性能。

  2. 代理节点(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中的凭据可以分为两种类型:系统凭据和用户凭据。系统凭据是所有用户都可以使用的凭据,用户凭据是特定用户可以使用的凭据。

要创建一个凭据,可以通过以下步骤操作:

  1. 在Jenkins的管理页面中,点击凭据
  2. 点击系统凭据用户凭据
  3. 点击创建凭据
  4. 填写凭据的名称、类型、值等信息。
  5. 点击创建

凭据创建时最好明确输入凭据ID,如果不输入系统会自动生成,在使用的时候,输入或选择对应的凭据ID即可。

Jenkins中的凭据可以有效地保护敏感信息,避免泄露。但是,要注意不要将凭据保存在公共存储中,以免被他人访问。

创建凭据

点击系统管理/凭据管理,系统全局凭据,也可以是用户凭据(就是另外创建一个域)。

以用户名密码凭据为例:输入用户名、密码、以及ID,点击Create即可

在这里插入图片描述

三、任务 job

在Jenkins中,任务(Job)是指要执行的特定操作或一系列操作的定义。任务可以是构建项目、部署应用程序、运行测试等。Jenkins中的任务通过配置和设置来定义其行为和执行方式。

以下是Jenkins中任务(Job)的一些重要概念和要点:

  1. 任务类型:Jenkins支持多种任务类型,例如自由风格项目、流水线项目、多配置项目等。每种任务类型都有不同的配置选项和执行方式。

  2. 构建触发器:任务可以通过不同的触发器来触发构建操作。常见的触发器包括定时触发、版本控制系统的变更触发、其他任务的成功触发等。

  3. 构建步骤:任务可以定义一系列的构建步骤,每个步骤执行特定的操作。例如,可以包括代码拉取、编译、测试、部署等步骤。

  4. 构建参数:任务可以定义输入参数,允许用户在执行任务时提供参数值。参数可以是文本、下拉列表、布尔值等类型。

  5. 构建环境:任务可以定义构建环境,包括设置环境变量、配置工具路径、指定构建代理节点等。

  6. 构建历史和报告:Jenkins会记录每次任务的构建历史,包括构建状态、执行时间、控制台输出等。任务还可以生成构建报告,用于查看构建结果和分析构建过程。

  7. 插件扩展: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、执行任务

上面任务创建完成后就可以执行了。

点击“立即构建”,右边会显示执行进度,如果报错了,可以点进去看具体的执行日志

在这里插入图片描述

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实战——Mac M2 安装mat工具

线上环境出现内存飙升的情况,需要工具定位问题发生点就需要用到mat工具了,之前都是在intel芯片环境上安装的,现在换了m2芯片,导致出现了问题,经过一系列调研都解决了,特此记录下,以备后查 开发…

Linux汇编语言编程-汇编语言

术语 Figure 3-13. 8086 Computer (Partial Model) reg 代表寄存器。 它可以是表 3.13 中列出的任何寄存器。 imm 代表立即数【immediate】(可以理解为字面量,常量)。 术语“立即数【immediate】”用于指代直接由十进制或十六进制表示形式给…

认识缓存,一文读懂Cookie,Session缓存机制。

🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…

SAP ABAP 面试题交流

1.列举AT事件并说明其作用,AT事件中的工作区有何不同? AT FIRST 循环loop中执行第一条数据 AT LAST 循环loop中执行最后一条数据 AT NEW 循环loop中指定字段(包含指定字段)记录与上一条记录不一致数据执行 AT END OF 循环loo…

2019年第八届数学建模国际赛小美赛D题安全选举的答案是什么解题全过程文档及程序

2019年第八届数学建模国际赛小美赛 D题 安全选举的答案是什么 原题再现: 随着美国进入一场关键性的选举,在确保投票系统的完整性方面进展甚微。2016年总统大选期间,唐纳德特朗普因被指控受到外国干涉而入主白宫,这一问题再次成为…

深度学习中的高斯分布

1 高斯分布数学表达 1.1 什么是高斯分布 高斯分布(Gaussian Distribution)又称正态分布(Normal Distribution)。高斯分布是一种重要的模型,其广泛应用与连续型随机变量的分布中,在数据分析领域中高斯分布占有重要地位。高斯分布是一个非常常见的连续概…

微信小程序uniapp记住密码

记住密码功能 在请求登录接口成功后,我们需要判断用户是否勾选记住密码,如果是,则将记住密码状态、账号信息存入本地。 下次登录时,获取本地的记住密码状态,如果为true则获取本地存储的账号信息,将信息回填…

ES中根据主键_id查询记录

一、需求 es中_type:_doc,想要根据主键_id查询记录 二、实现 复合查询中使用语句查询http://192.168.1.1/_doc/1

SpringSecurity6从入门到上天系列第八篇:SpringSecurity当中的默认登录页面是如何产生的?

😉😉 欢迎加入我们的学习交流群呀! ✅✅1:这是孙哥suns给大家的福利! ✨✨2:我们免费分享Netty、Dubbo、k8s、Mybatis、Spring等等很多应用和源码级别的高质量视频和笔记资料,你想学的我们这里都…

龙迅LT2611UXC 双PORT LVDS转HDMI(2.0)+音频

描述: LT2611UXC是一个高性能的LVDS到HDMI2.0的转换器,用于STB,DVD应用程序。 LVDS输入可配置为单端口或双端口,有1个高速时钟通道,3~4个高速数据通道,最大运行1.2Gbps/通道,可支持高达9.6Gbp…

【BI】FineBI功能学习路径-20231211

FineBI功能学习路径 https://help.fanruan.com/finebi/doc-view-1757.html 编辑数据概述 1.1 调整数据结构 1.2 简化数据 2.1上下合并 2.2其他表添加列 2.3左右合并 新增分析指标 函数参考 https://help.fanruan.com/finereport/doc-view-1897.html 数值函数 日期函数 文…

利用vue-okr-tree实现飞书OKR对齐视图

vue-okr-tree-demo 因开发需求需要做一个类似飞书OKR对齐视图的功能,参考了两位大神的代码: 开源组件vue-okr-tree作者博客地址:http://t.csdnimg.cn/5gNfd 对组件二次封装的作者博客地址:http://t.csdnimg.cn/Tjaf0 开源组件v…

高级C#技术(二)

前言 本章为高级C#技术的第二节也是最后一节。前一节在下面这个链接 高级C#技术https://blog.csdn.net/qq_71897293/article/details/134930989?spm1001.2014.3001.5501 匿名类型 匿名类型如其名,匿名的没有指定变量的具体类型。 举个例子: 1 创建…

kotlin 基础概览

继承类/实现接口 继承类和实现接口都是用的 : ,如果类中没有构造器 ( constructor ),需要在父类类名后面加上 () : class MainActivity : BaseActivity(), View.OnClickListener 空安全设计 Kotlin 中的类型分为「可空类型」和「不可空类型」…

基于ssm企业人事管理系统的设计与实现论文

摘 要 进入信息时代以来,很多数据都需要配套软件协助处理,这样可以解决传统方式带来的管理困扰。比如耗时长,成本高,维护数据困难,数据易丢失等缺点。本次使用数据库工具MySQL和编程技术SSM开发的企业人事管理系统&am…

Tekton 基于 gitlab 触发流水线

Tekton 基于 gitlab 触发流水线 Tekton EventListener 在8080端口监听事件,Gitlab 提交代码产生push 事件,gitlab webhook触发tekton流水线执行。 前置要求: kubernetes集群中已部署 tekton pipeline、tekton triggers以及tekton dashboa…

GO并发编程综合应用

一.GO并发编程综合应用 1.生产者消费者模式 1.1需求分析 ​ 生产者每秒生产一个商品,并通过物流公司取货 ​ 物流公司将商品运输到商铺 ​ 消费者阻塞等待商铺到货,需要消费10次商品 1.2实现原理 1.3代码实现: package mainimport (&q…

Unity Mono加密解决方案

Unity Mono 是 Unity 引擎默认的脚本运行时环境,在游戏开发中扮演着重要的角色。Mono 由跨平台的开源 .NET 框架实现,它允许开发者使用 C# 等编程语言编写游戏逻辑。凭借简单易用的开发环境和高效的脚本编译速度,得到了众多游戏的青睐。 在 …

基于亚马逊云科技新功能:Amazon SageMaker Canvas无代码机器学习—以构建货物的交付状态检测模型实战为例深度剖析以突显其特性

授权说明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在亚马逊云科技开发者社区、 知乎、自媒体平台、第三方开发者媒体等亚马逊云科技官方渠道。 目录 🚀一. Amazon SageMaker 🔎1.1 新功能发布:A…

【通俗易懂】基于fabric8io操作k8s集群实战(pod、deployment、service、volume)

目录 前言一、基于fabric8io操作pod1.1 yaml创建pod1.2 fabric8io创建pod案例 二、基于fabric8io创建Service(含Deployment)2.1 yaml创建Service和Deployment2.2 fabric8io创建service案例 三、基于fabric8io操作Volume3.1 yaml配置挂载存储卷3.2 基于fa…