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

2023-12-18 01:45

本文主要是介绍【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、执行任务

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

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

在这里插入图片描述

在这里插入图片描述

这篇关于【Jenkins】节点 node、凭据 credentials、任务 job的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/506592

相关文章

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用

如何使用Python实现一个简单的window任务管理器

《如何使用Python实现一个简单的window任务管理器》这篇文章主要为大家详细介绍了如何使用Python实现一个简单的window任务管理器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起... 任务管理器效果图完整代码import tkinter as tkfrom tkinter i

Spring Boot 集成 Quartz 使用Cron 表达式实现定时任务

《SpringBoot集成Quartz使用Cron表达式实现定时任务》本文介绍了如何在SpringBoot项目中集成Quartz并使用Cron表达式进行任务调度,通过添加Quartz依赖、创... 目录前言1. 添加 Quartz 依赖2. 创建 Quartz 任务3. 配置 Quartz 任务调度4. 启

Java使用多线程处理未知任务数的方案介绍

《Java使用多线程处理未知任务数的方案介绍》这篇文章主要为大家详细介绍了Java如何使用多线程实现处理未知任务数,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 知道任务个数,你可以定义好线程数规则,生成线程数去跑代码说明:1.虚拟线程池:使用 Executors.newVir

nvm如何切换与管理node版本

《nvm如何切换与管理node版本》:本文主要介绍nvm如何切换与管理node版本问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录nvm切换与管理node版本nvm安装nvm常用命令总结nvm切换与管理node版本nvm适用于多项目同时开发,然后项目适配no

Spring Boot中定时任务Cron表达式的终极指南最佳实践记录

《SpringBoot中定时任务Cron表达式的终极指南最佳实践记录》本文详细介绍了SpringBoot中定时任务的实现方法,特别是Cron表达式的使用技巧和高级用法,从基础语法到复杂场景,从快速启... 目录一、Cron表达式基础1.1 Cron表达式结构1.2 核心语法规则二、Spring Boot中定

Node.js net模块的使用示例

《Node.jsnet模块的使用示例》本文主要介绍了Node.jsnet模块的使用示例,net模块支持TCP通信,处理TCP连接和数据传输,具有一定的参考价值,感兴趣的可以了解一下... 目录简介引入 net 模块核心概念TCP (传输控制协议)Socket服务器TCP 服务器创建基本服务器服务器配置选项服

mac安装nvm(node.js)多版本管理实践步骤

《mac安装nvm(node.js)多版本管理实践步骤》:本文主要介绍mac安装nvm(node.js)多版本管理的相关资料,NVM是一个用于管理多个Node.js版本的命令行工具,它允许开发者在... 目录NVM功能简介MAC安装实践一、下载nvm二、安装nvm三、安装node.js总结NVM功能简介N

Docker部署Jenkins持续集成(CI)工具的实现

《Docker部署Jenkins持续集成(CI)工具的实现》Jenkins是一个流行的开源自动化工具,广泛应用于持续集成(CI)和持续交付(CD)的环境中,本文介绍了使用Docker部署Jenkins... 目录前言一、准备工作二、设置变量和目录结构三、配置 docker 权限和网络四、启动 Jenkins

Spring Boot 整合 ShedLock 处理定时任务重复执行的问题小结

《SpringBoot整合ShedLock处理定时任务重复执行的问题小结》ShedLock是解决分布式系统中定时任务重复执行问题的Java库,通过在数据库中加锁,确保只有一个节点在指定时间执行... 目录前言什么是 ShedLock?ShedLock 的工作原理:定时任务重复执行China编程的问题使用 Shed