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

news2024/11/15 11:12:29

一、节点 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.coloradmin.cn/o/1311519.html

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

相关文章

美团、阿里、快手、百度 | NLP暑期算法实习复盘

面试锦囊之面经分享系列,持续更新中 后台回复『面试』加入讨论组交流噢 背景 211CS本港三DS硕,硕士research的方向是NLP,目标是找任何方向的算法实习。 本科做开发为主没有算法经验,没有top比赛,没有过算法实习&…

【docker】docker入门与安装

Docker 一、入门 Docker的主要目标是:Build, Ship and Run Any App, Anywhere,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP及其运行环境能做到一次镜像,处处运行。 Docker运行速度快的原因 Docker有比虚拟…

SpringBoot框架接口数据加密(base64)传输(前后分离版本)

技术采用FilterHttpServletRequestWrapperHttpServletResponseWrapperbase64 1、前端加解密 1.1 vue引入开源的base64 1、下载依赖 $ npm install --save js-base642、使用方法: import {Base64} from js-base64Base64.encode(hellow world); // 编码 aGVsbG93IF…

Pycharm2023安装

PyCharm是一种Python IDE(集成开发环境),带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了一些高…

【SpringBoot篇】基于布隆过滤器,缓存空值,解决缓存穿透问题 (商铺查询时可用)

文章目录 🍔什么是缓存穿透🎄解决办法⭐缓存空值处理🎈优点🎈缺点🎍代码实现 ⭐布隆过滤器🎍代码实现 🍔什么是缓存穿透 缓存穿透是指在使用缓存机制时,大量的请求无法从缓存中获取…

Redis高级特性解析:持久化、主从复制与哨兵机制全面探讨

Redis持久化 RDB快照(snapshot) 在默认情况下, Redis 将内存数据库快照保存在名字为 dump.rdb 的二进制文件中。 你可以对 Redis 进行设置, 让它在“ N 秒内数据集至少有 M 个改动”这一条件被满足时, 自动保存…

bugkuctf web随记wp

常规思路: 1,源码2,抓包3,御剑dirsearch扫后台检查是否有git文件未删除4,参数 本地管理员:1,cu看源码,sci看源码有一串东西2,base64解码后是test123猜测是密码3&#x…

IDEA中显示方法、类注释信息

目录 一、IDEA测试版本及环境二、操作步骤2.1 鼠标悬停在某一个方法上,从而显示方法的注释信息2.2 调用方法时同步显示方法注释信息2.3 在new一个对象时,这个对象有很多重载的构造方法,想要重载的构造函数都显示出来 一、IDEA测试版本及环境 …

WPF仿网易云搭建笔记(6):Style进阶详解

文章目录 专栏和Gitee仓库前言Style简单使用样式字典全局样式局部全局样式全局样式穿透 专栏和Gitee仓库 WPF仿网易云 Gitee仓库 WPF仿网易云 CSDN博客专栏 前言 WPF想要批量设置样式属性,一共有3个方法 Style样式Template控件模板DataTemplate数据模板 WPF 零基础…

聚观早报 |iOS17.3引入设备被盗保护;iPhone16或调整设计

【聚观365】12月14日消息 iOS17.3引入设备被盗保护 iPhone16或调整设计 马斯克星链网络使用量飙升 华为鸿蒙智行App正式上线 特斯拉人形机器人Optimus二代上线 iOS17.3引入设备被盗保护 苹果向iPhone用户推送了iOS17.3开发者预览版Beta更新,本次更新距离上次发…

JVM虚拟机系统性学习-JVM调优之通过gceasy分析GC日志对堆、元空间、线程堆栈和垃圾回收器进行调优

通过 gceasy工具对生成的 GC 日志进行分析 这里使用的 JDK 版本为 JDK8! 在分析 GC 日志时,可以同时采用多种工具(Arthas、gceasy、JVM 连接 Graphana 监控)进行分析,避免某种工具分析不准确 gceasy 每个月只可以免费…

激光炸弹

title: 激光炸弹 date: 2023-12-14 19:42:59 tags: 前缀和 categories: 算法进阶指南 题目链接 − − > --> −−> 传送门 题目大意 思路 代码 #include<bits/stdc.h> #define fi first #define se second #define pb push_back #define sz size() #define …

mac python安装grpcio以及xcode升级权限问题记录

问题1: ERROR: Could not build wheels fol grpcio, which is required to install pyproject.toml-based projects pip3 install --no-cache-dir --force-reinstall -Iv grpcio1.41.0 # (我这里是降级安装的) 问题2: fatal error: ‘stdio.h’ file not found 25 | #include …

@德人合科技——天锐绿盾|电脑文件防止泄密|文件、文档、图纸、源代码等透明加密保护,防泄密软件系统

德人合科技——天锐绿盾提供了一种企业办公电脑文件防止泄密的解决方案&#xff0c;该方案对文件、文档、设计图纸、源代码等进行了透明加密保护。 pc访问地址&#xff1a; https://isite.baidu.com/site/wjz012xr/2eae091d-1b97-4276-90bc-6757c5dfedee 透明加密是一种保护文…

【Mars3d】关于locationBar等控件的css样式冲突处理问题

【Mars3d】关于locationBar等控件的css样式冲突处理问题 问题场景&#xff1a; 1.通过代码加载new mars3d.control.Zoom(或者通过地球map初始化配置 option.control {加载放大缩小工具控件的时候&#xff0c;出现图标的样式冲突效果&#xff1a; 2.sceneModePicker&#xf…

电脑开机出现:CLIENT MAD ADDR (网卡启动系统)的解决办法

文章目录 前言步骤1、确定情况2、对症下药——关闭网卡启动 补充1、关于BIOS2、关于PXE 前言 最近给旧电脑重装系统安了下开发环境和常用软件啥的&#xff0c;之前还好好启动的电脑&#xff0c;开机突然需要额外加载一个页面&#xff0c;虽然最后正常启动了不影响使用&#xf…

微信小程序uniapp记住密码

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

构建外卖小程序:技术代码实践

在这个数字化的时代&#xff0c;外卖小程序已经成为餐饮业的一项重要工具。在本文中&#xff0c;我们将通过一些简单而实用的技术代码&#xff0c;向您展示如何构建一个基本的外卖小程序。我们将使用微信小程序平台作为例子&#xff0c;但这些原理同样适用于其他小程序平台。 …

供应链安全应该掌握哪些呢

整理了供应链安全相关的内容&#xff0c;涵盖了普及应用安全、信息安全意识的内容&#xff0c;这些内容可以面向企业全部员工进行讲解。后面包括了面向开发人员、测试人员、安全人员的内容&#xff0c;包括应用安全开发、供应链安全。面向架构人员的架构安全内容&#xff0c;后…

每日一题SQL

以下题目来源微信公众号【SQL数据库开发】 1、编写一个 SQL 查询来实现分数排名。如果两个分数相同&#xff0c;则两个分数排名&#xff08;Rank&#xff09;相同。请注意&#xff0c;平分后的下一个名次应该是下一个连续的整数值。换句话说&#xff0c;名次之间不应该有“间隔…