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

2023-12-14 21:28

本文主要是介绍【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/493918

相关文章

解决systemctl reload nginx重启Nginx服务报错:Job for nginx.service invalid问题

《解决systemctlreloadnginx重启Nginx服务报错:Jobfornginx.serviceinvalid问题》文章描述了通过`systemctlstatusnginx.se... 目录systemctl reload nginx重启Nginx服务报错:Job for nginx.javas

Python Invoke自动化任务库的使用

《PythonInvoke自动化任务库的使用》Invoke是一个强大的Python库,用于编写自动化脚本,本文就来介绍一下PythonInvoke自动化任务库的使用,具有一定的参考价值,感兴趣的可以... 目录什么是 Invoke?如何安装 Invoke?Invoke 基础1. 运行测试2. 构建文档3.

解决Cron定时任务中Pytest脚本无法发送邮件的问题

《解决Cron定时任务中Pytest脚本无法发送邮件的问题》文章探讨解决在Cron定时任务中运行Pytest脚本时邮件发送失败的问题,先优化环境变量,再检查Pytest邮件配置,接着配置文件确保SMT... 目录引言1. 环境变量优化:确保Cron任务可以正确执行解决方案:1.1. 创建一个脚本1.2. 修

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

如何使用celery进行异步处理和定时任务(django)

《如何使用celery进行异步处理和定时任务(django)》文章介绍了Celery的基本概念、安装方法、如何使用Celery进行异步任务处理以及如何设置定时任务,通过Celery,可以在Web应用中... 目录一、celery的作用二、安装celery三、使用celery 异步执行任务四、使用celery

springboot整合 xxl-job及使用步骤

《springboot整合xxl-job及使用步骤》XXL-JOB是一个分布式任务调度平台,用于解决分布式系统中的任务调度和管理问题,文章详细介绍了XXL-JOB的架构,包括调度中心、执行器和Web... 目录一、xxl-job是什么二、使用步骤1. 下载并运行管理端代码2. 访问管理页面,确认是否启动成功

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

什么是cron? Linux系统下Cron定时任务使用指南

《什么是cron?Linux系统下Cron定时任务使用指南》在日常的Linux系统管理和维护中,定时执行任务是非常常见的需求,你可能需要每天执行备份任务、清理系统日志或运行特定的脚本,而不想每天... 在管理 linux 服务器的过程中,总有一些任务需要我们定期或重复执行。就比如备份任务,通常会选在服务器资

Jenkins中自动化部署Spring Boot项目的全过程

《Jenkins中自动化部署SpringBoot项目的全过程》:本文主要介绍如何使用Jenkins从Git仓库拉取SpringBoot项目并进行自动化部署,通过配置Jenkins任务,实现项目的... 目录准备工作启动 Jenkins配置 Jenkins创建及配置任务源码管理构建触发器构建构建后操作构建任务

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06