当前位置: 首页 > news >正文

实战一个 Jenkins 构建 CI/CD流水线 的简单配置过程哈

        引言:上一期我们讲述了gitlabCI/CD工具的介绍,工具之争,本期我们介绍Jenkins CI/CD 

目录

一、Jenkins介绍

1、Jenkins概念

2、Jenkins目的

3、特性

4、产品发布流程

二、安装Jenkins

1、安装JDK

2、安装Jenkins

1、上传压缩包

2、解压jdk

3、解压tomcat

4、拷贝并修改名称

5、处理环境变量

6、上传jenkins

7、启动tomcat,并页面访问

三、浏览器页面配置

四、安装完后简单的配置

配置邮箱

全局工具配置

添加节点

1、准备节点

2、系统配置

3、添加节点

4、检查节点


一、Jenkins介绍

1、Jenkins概念

  Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台。这是一个免费的源代码,可以处理任何类型的构建或持续集成。集成Jenkins可以用于一些测试和部署技术。Jenkins是一种软件允许持续集成。

2、Jenkins目的

        ① 持续、自动地构建/测试软件项目。

        ② 监控软件开放流程,快速问题定位及处理,提示开放效率。

3、特性

        ① 开源的java语言开发持续集成工具,支持CI,CD。

        ② 易于安装部署配置:可通过yum安装,或下载war包以及通过docker容器等快速实现安装部署,可方便web界面配置管理。

        ③ 消息通知及测试报告:集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知,生成JUnit/TestNG测试报告。

        ④ 分布式构建:支持Jenkins能够让多台计算机一起构建/测试。

        ⑤ 文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。

        ⑥ 丰富的插件支持:支持扩展插件,你可以开发适合自己团队使用的工具,如git,svn,maven,docker等。

4、产品发布流程

        产品设计成型 -> 开发人员开发代码 -> 测试人员测试功能 -> 运维人员发布上线

                持续集成(Continuous integration,简称CI)

                持续交付(Continuous delivery)

                持续部署(continuous deployment)

二、安装Jenkins

1、安装JDK

        Jenkins是Java编写的,所以需要先安装JDK,这里采用yum安装,如果对版本有需求,可以直接在Oracle官网下载JDK;也可自己编译安装。

        java版本选择

Oracle | Cloud Applications and Cloud Platform

        tomcat版本选择

Index of /apache/tomcat (tsinghua.edu.cn)

        详情部署步骤可参考以下文章

被问到Tomcat是什么该怎么回答?他还有一个好帮手JDK你知道吗?-CSDN博客

2、安装Jenkins

1、上传压缩包

        jenkins版本选择

Jenkins 的安装和设置

        这里我们选择的是jdk-17  tomcat-9.0.83  以及jenkins2.426.3与jenkins的war包

2、解压jdk
tar xf jdk-17_linux-x64_bin.tar.gz 

3、解压tomcat
tar xf apache-tomcat-9.0.83.tar.gz

4、拷贝并修改名称
mv apache-tomcat-9.0.83 tomcat && mv jdk-17.0.7 java

5、处理环境变量
 vim /etc/profile.d/java.sh

加入以下内容:

export PATH=/opt/java/bin:$PATH
export PATH=/opt/tomcat/bin:$PATH                       

重新加载环境变量

 source /etc/profile.d/java.sh
6、上传jenkins

删除tomcat初始访问页面内容

rm -rf /opt/tomcat/webapps/*

将jenkins的war包一到tomcat页面访问目录

cp jenkins.war /opt/tomcat/webapps/
7、启动tomcat,并页面访问
startup.sh

三、浏览器页面配置

1、浏览器访问 ip:8080

如果出现AWT is not properly configured on this server. Perhaps you need to run your container with "-Djava.awt.headless=true"? See also: https://www.jenkins.io/redirect/troubleshooting/java.awt.headless的报错。这是我们返回服务器安装一个fontconfig依赖插件即可正常

yum -y install fontconfig

重新启动tomcat

shutdown.shstartup.sh

再次访问 ip:8080加载过后来到下面的页面

2、根据提示在此文件中复制密码并粘贴到下面

3、 选择默认推荐即可,会安装通用的社区插件,剩下的可以在使用的时候再进行安装

 4、开始安装,由于网络原因,有一些插件可能会安装失败,等待即可

设置系统管理员用户和密码

安装完成

登录jenkins

四、安装完后简单的配置

配置邮箱

添加系统管理员的邮箱

扩展邮件通知(用于之后项目构建后发送邮件

添加默认邮件后缀

全局工具配置

jkd添加

添加节点

node 节点的作用

  1. 分布式构建:通过添加多个节点,可以在多台计算机上并行执行构建任务,从而加快构建速度和提高效率。节点可以是物理计算机、虚拟机、云实例或容器等。

  2. 扩展计算能力:通过添加更多的节点,可以扩展Jenkins的计算能力,使其能够处理更多的并发构建任务,从而适应不断增长的工作负载。

  3. 平台兼容性:使用Node节点可以在不同的操作系统、不同的硬件平台上执行构建任务,以满足项目的特定需求。您可以配置节点以适应特定的操作系统、软件环境和工具链。

  4. 隔离和安全性:将构建任务分配给独立的节点可以提供更好的隔离和安全性。节点之间相互独立,一个节点的故障或问题不会影响其他节点的工作。

  5. 负载平衡:Jenkins可以根据节点的负载情况自动分配任务,从而实现负载平衡。这样可以更好地利用可用资源,并确保每个节点都能以最佳状态运行。

1、准备节点
1、准备一台新的服务器并配置java环境
2、主节点添加凭据,并推送公钥
3、在node节点配置需要的工具
2、系统配置

image-20230611193513253

3、添加节点

image-20230611193601845

image-20230611194016152

image-20230611194029326

4、检查节点

image-20230611194101116

希望能够帮助到大家!!

相关文章:

实战一个 Jenkins 构建 CI/CD流水线 的简单配置过程哈

引言:上一期我们讲述了gitlabCI/CD工具的介绍,工具之争,本期我们介绍Jenkins CI/CD 目录 一、Jenkins介绍 1、Jenkins概念 2、Jenkins目的 3、特性 4、产品发布流程 二、安装Jenkins 1、安装JDK 2、安装Jenkins 1、上传压缩包 2、…...

【InternLM 实战营笔记】大模型评测

随着人工智能技术的快速发展, 大规模预训练自然语言模型成为了研究热点和关注焦点。OpenAI于2018年提出了第一代GPT模型,开辟了自然语言模型生成式预训练的路线。沿着这条路线,随后又陆续发布了GPT-2和GPT-3模型。与此同时,谷歌也…...

数据卷(Data Volumes) 自定义镜像(dockerfile)

目录 一. 数据卷(Data Volumes) 1.1 什么是数据卷 1.2 为什么需要数据卷 1.3 数据卷的作用 1.4 数据卷的使用 二. 自定义镜像(dockerfile) 2.1 什么是dockerfile 2.2 自定义centos 2.3 自定义tomcat 一. 数据卷(Data…...

数据库管理-第156期 Oracle Vector DB AI-07(20240227)

数据库管理156期 2024-02-27 数据库管理-第156期 Oracle Vector DB & AI-07(20240227)1 Vector相关DDL操作可以在现有的表上新增vector数据类型的字段:可以删除包含vector数据类型的列:可以使用CTAS的方式,从其他有…...

CASAtomic原子操作详解

什么是原子操作?如何实现原子操作? 我们在接触到事务的时候,了解到事务的一大特性是原子性,一个事务要么全部执行、要么全部不执行。 并发里的原子性和事务里的原子性有一样的内涵和概念。假定有2个操作A和B都包含多个步骤…...

真机测试——关于荣耀Magic UI系列HBuilder真机调试检测不到解决办法

​​​​​出现这种状况怎么办 1、开启USB调试 2、重点来了——我们要选择USB配置,选择音频来源 3、连接OK...

代理IP安全问题:在国外使用代理IP是否安全

目录 前言 一、国外使用代理IP的安全风险 1. 数据泄露 2. 恶意软件 3. 网络攻击 4. 法律风险 二、保护国外使用代理IP的安全方法 1. 选择可信的代理服务器 2. 使用加密协议 3. 定期更新系统和软件 4. 注意网络安全意识 三、案例分析 总结 前言 在互联网时代&…...

SonarLint 疑难语法修正

/*** 投诉率统计(厂端)* 1.通过售后小区分组统计* 2.通过经销商分组统计* param kpiComplaintRateQueryVO 查询参数* return 投诉率统计数据*/ApiOperation(value "厂端投诉率统计维度查询")PostMapping("/vcdc/ratestatis")public List<KpiComplaintR…...

MurmurHash算法

MurmurHash&#xff1a;(multiply and rotate) and (multiply and rotate) Hash&#xff0c;乘法和旋转的hash 算法。 一、哈希函数 散列函数&#xff08;英语&#xff1a;Hash function&#xff09;又称散列算法、哈希函数&#xff0c;是一种从任何一种数据中创建小的数字“…...

CSRF靶场实战

DVWA靶场链接&#xff1a;https://pan.baidu.com/s/1eUlPyB-gjiZwI0wsNW_Vkw?pwd0b52 提取码&#xff1a;0b52 DVWA Low 级别打开靶场&#xff0c;修改密码 复制上面的 url&#xff0c;写个简单的 html 文件 <html <body> <a hrefhttp://127.0.0.1/DVWA/vulne…...

小程序性能优化

背景 在开发小程序的过程中我们发现&#xff0c;小程序的经常会遇到性能问题&#xff0c;尤其是在微信开发者工具的时候更是格外的卡&#xff0c;经过排查发现&#xff0c;卡顿的页面有这么多的js代码需要加载&#xff0c;而且都是在进入这个页面的时候加载&#xff0c;这就会…...

C++拿几道题练练手吧

第 1 题 【 问答题 】 • 最短路径问题 平面上有n个点(n<100)&#xff0c;每个点的坐标均在-10000~10000之间。其中的一些点之间有连线。 若有连线&#xff0c;则表示可从一个点到达另一个点&#xff0c;即两点间有通路&#xff0c;通路的距离为两点间的直线距离。现在的任务…...

【国产MCU】-CH32V307-I2C控制器

I2C控制器 文章目录 I2C控制器1、I2C模块介绍2、I2C驱动API介绍3、I2C使用实例3.1 主模式3.1.1 主设备发送模式和主设备接收模式3.1.2 DMA方式发送3.2 从模式内部集成电路总线(I2C)广泛用在微控制器和传感器及其他片外模块的通讯上,它本身支持多主多从模式,仅仅使用两根线(…...

k8s pod理论

一、Pod概述 1、Pod的定义 Pod是K8S中创建和管理的最小单位。 2、一个Pod至少包含多少容器 1个pause容器&#xff08;基础容器/父容器/根容器&#xff09;和 1个或者多个应用容器&#xff08;业务容器&#xff09; 通常一个Pod最好只包含一个应用容器&#xff0c;一个应用容…...

智慧应急:构建全方位、立体化的安全保障网络

一、引言 在信息化、智能化快速发展的今天&#xff0c;传统的应急管理模式已难以满足现代社会对安全保障的需求。智慧应急作为一种全新的安全管理模式&#xff0c;旨在通过集成物联网、大数据、云计算、人工智能等先进技术&#xff0c;实现对应急事件的快速响应、精准决策和高…...

国际黄金价格是什么?和黄金价格有何区别?

黄金是世界上最珍贵的贵金属之一&#xff0c;其价值被无数人所垂涎。而国际黄金价格作为市场上的参考指标&#xff0c;直接影响着黄金交易的买卖。那么国际黄金价格到底是什么&#xff0c;与黄金价格又有何区别呢&#xff1f;本文将为您详细解答。 国际黄金价格是指以美元计量的…...

React入门简介

React简介 react是Facebook用来创建用户界面的js库。React不是一个MVC框架&#xff0c;而是一个用于构建组件ui库&#xff0c;是一个前端界面开发工具&#xff0c;所以很多人认为React是MVC中的V&#xff08;视图&#xff09;。React的存在能够很好的解决‘构建随着时间数据不断…...

强化学习_06_pytorch-PPO实践(Hopper-v4)

一、PPO优化 PPO的简介和实践可以看笔者之前的文章 强化学习_06_pytorch-PPO实践(Pendulum-v1) 针对之前的PPO做了主要以下优化&#xff1a; batch_normalize: 在mini_batch 函数中进行adv的normalize, 加速模型对adv的学习policyNet采用beta分布(0~1): 同时增加MaxMinScale …...

Scala Intellij编译错误:idea报错xxxx“is already defined as”

今天写scala代码时,Idea报了这样的错误&#xff0c;如下图所示&#xff1a; 一般情况下原因分两种&#xff1a; 第一是我们定义的类或对象重复多次出现&#xff0c;编译器无法确定使用哪个定义。 这通常是由于以下几个原因导致的&#xff1a; 重复定义&#xff1a;在同一个文件…...

面试笔记系列五之MySql+Mybaits基础知识点整理及常见面试题

myibatis执行过程 1读取MyBatis的配置文件。 mybatis-config.xml为MyBatis的全局配置文件&#xff0c;用于配置数据库连接信息。 2加载映射文件。映射文件即SQL映射文件&#xff0c;该文件中配置了操作数据库的SQL语句&#xff0c;需要在MyBatis配置文件mybatis-config.xml中…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中&#xff0c;我们已经大致实现了rpc服务端的各项功能代…...

Linux链表操作全解析

Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表&#xff1f;1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

Qt Http Server模块功能及架构

Qt Http Server 是 Qt 6.0 中引入的一个新模块&#xff0c;它提供了一个轻量级的 HTTP 服务器实现&#xff0c;主要用于构建基于 HTTP 的应用程序和服务。 功能介绍&#xff1a; 主要功能 HTTP服务器功能&#xff1a; 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

Java + Spring Boot + Mybatis 实现批量插入

在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法&#xff1a;使用 MyBatis 的 <foreach> 标签和批处理模式&#xff08;ExecutorType.BATCH&#xff09;。 方法一&#xff1a;使用 XML 的 <foreach> 标签&#xff…...

人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent

安全大模型训练计划&#xff1a;基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标&#xff1a;为安全大模型创建高质量、去偏、符合伦理的训练数据集&#xff0c;涵盖安全相关任务&#xff08;如有害内容检测、隐私保护、道德推理等&#xff09;。 1.1 数据收集 描…...

LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用

中达瑞和自2005年成立以来&#xff0c;一直在光谱成像领域深度钻研和发展&#xff0c;始终致力于研发高性能、高可靠性的光谱成像相机&#xff0c;为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...

【FTP】ftp文件传输会丢包吗?批量几百个文件传输,有一些文件没有传输完整,如何解决?

FTP&#xff08;File Transfer Protocol&#xff09;本身是一个基于 TCP 的协议&#xff0c;理论上不会丢包。但 FTP 文件传输过程中仍可能出现文件不完整、丢失或损坏的情况&#xff0c;主要原因包括&#xff1a; ✅ 一、FTP传输可能“丢包”或文件不完整的原因 原因描述网络…...

aardio 自动识别验证码输入

技术尝试 上周在发学习日志时有网友提议“在网页上识别验证码”&#xff0c;于是尝试整合图像识别与网页自动化技术&#xff0c;完成了这套模拟登录流程。核心思路是&#xff1a;截图验证码→OCR识别→自动填充表单→提交并验证结果。 代码在这里 import soImage; import we…...