Jenkins流水线管理工具
文章目录
- 前言: DevOps时代的自动化核心 —Jenkins
- 一、Jenkins是什么?
- 二、Linux安装Jenkins
- war包方式安装
- 依赖环境
- 下载 Jenkins WAR 包
- 启动 Jenkins 服务
- 启动日志验证
- 配置插件镜像源
- docker镜像方式安装
- 依赖环境
- 拉取 Jenkins 镜像
- 运行 Jenkins 容器
- 获取初始密码并访问 Jenkins
- 配置Jenkins插件镜像源
- 三、初始化配置
- 访问初始配置页面
- 安装推荐插件
- 创建管理员
- 重启 Jenkins
- 总结
- 参考文档
前言: DevOps时代的自动化核心 —Jenkins
Jenkins作为 DevOps 工具链中当之无愧的 “自动化中枢”,正凭借其强大的持续集成与持续交付(CI/CD)能力,重塑全球千万开发团队的协作模式。
作为一款开源自动化服务器,Jenkins 的核心使命是通过全流程自动化,消除手动干预的低效与风险。它能无缝衔接代码提交、构建、测试、部署等环节,让开发、测试、运维团队在统一的平台上协同,实现 “代码即部署” 的敏捷愿景。无论是小型初创团队的快速迭代,还是大型企业复杂架构的多环境部署,Jenkins 都以高度的灵活性和扩展性,成为支撑技术落地的基础设施。
从自动化构建代码、运行测试用例,到一键部署至生产环境;
从可视化流水线监控全流程,到通过插件生态集成 Docker、Kubernetes、云服务商等工具
Jenkins 用标准化的流程和开放的生态,让 “持续交付高质量软件” 从理想变为现实。
本文将深入解析 Jenkins 的核心价值、典型应用场景及实操指南,带您揭开这款 DevOps 神器的神秘面纱。
一、Jenkins是什么?
Jenkins 是一款开源的自动化服务器,核心定位是为软件开发和运维提供 持续集成(CI) 与 持续交付 / 部署(CD) 的全流程自动化支持。它通过自动化代码构建、测试、部署等关键环节,帮助开发团队高效协作,快速交付高质量软件。
核心特性:
全流程自动化: 从代码提交到生产环境部署,无需人工干预,支持自动触发构建、运行测试用例、打包发布等操作。
灵活可扩展: 通过丰富的插件生态(支持 Git、Docker、Kubernetes、JUnit 等工具集成),适配不同技术栈和复杂场景。
可视化与监控: 提供 Pipeline 流水线可视化界面,实时追踪流程状态,支持失败报警和日志分析,提升问题排查效率。
跨平台支持: 可部署在 Linux、Windows、macOS 等系统,适用于从小型团队到企业级的多样化需求。
二、Linux安装Jenkins
war包方式安装
依赖环境
Java 环境
Jenkins 基于 Java 运行,需提前安装 JDK,由于Jenkins插件很多都依赖JDK17以上版本,所以为了保证插件可以使用,推荐安装JDK17以上版本。这里安装了21版本
debain系统
# 更新包列表
sudo apt update
# 安装 OpenJDK 21
sudo apt install openjdk-21-jdk
# 验证安装(应显示 21 版本信息)
java -version
RedHat系统
# 更新系统软件包列表和依赖
sudo dnf update -y
# 安装 OpenJDK 21
sudo dnf install -y java-21-openjdk
# 验证安装(应显示 21 版本信息)
java -version
下载 Jenkins WAR 包
从Jenkins 官网下载相应war包到本地,后上传到服务器。
LTS
是长期支持的版本,是稳定的版本
在下载安装包之前要先确定应该下载哪个版本的 Jenkins
,Jenkins
的版本依赖于 Java 的版本,可在 Jenkins-Java Support Policy 中进行查看
如果你下载的 Jenkins
版本与本地 Java
不支持,那么 Jenkins
是无法安装成功的,例如服务器上 JDK
的版本是 1.8.0_311,也就是 Java 8
,那么只能安装 2.346.1
或者该版本之前的
或者在服务器通过命令行的方式下载
wget https://get.jenkins.io/war-stable/2.289.3/jenkins.war
启动 Jenkins 服务
通过 Java 命令直接启动,默认端口是8080,支持自定义端口(如8090):
java -jar jenkins.war --httpPort=8090
启动日志验证
出现Jenkins is fully up and running表示启动成功。
配置插件镜像源
sed -i 's#https://updates.jenkins.io/download#https://mirrors.tuna.tsinghua.edu.cn/jenkins#g' default.json
sed -i 's#http://www.google.com#https://www.baidu.com#g' default.json
上面两行命令的含义
插件查找搜索地址(默认为 http://www.google.com/),我们更换成百度的地址;
插件下载地址(默认为 https://updates.jenkins.io/download),我们更换成国内镜像地址
docker镜像方式安装
依赖环境
Docker
确保服务器已安装 Docker,可以通过以下命令检查 Docker 是否安装
docker --version
如果未安装,参考文档进行安装
拉取 Jenkins 镜像
从 Docker Hub 拉取 Jenkins 官方镜像,推荐使用 LTS(长期支持)版本,保证稳定性和安全性。执行以下命令拉取镜像:
docker pull jenkins/jenkins:lts
拉取完成后,可以使用docker images命令查看已下载的 Jenkins 镜像。
运行 Jenkins 容器
使用docker run命令创建并启动 Jenkins 容器,同时进行端口映射和数据卷挂载。以下是常用的启动命令示例:
docker run \-u root \--name jenkins \-d \-p 8080:8080 \-p 50000:50000 \-v jenkins-data:/var/jenkins_home \-v /var/run/docker.sock:/var/run/docker.sock \jenkins/jenkins:lts
获取初始密码并访问 Jenkins
获取初始密码:Jenkins 首次启动时需要使用初始密码进行解锁,通过以下命令查看密码:
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
配置Jenkins插件镜像源
进入 Jenkins 容器
docker exec -it jenkins bash
这里的 jenkins 是 Jenkins 容器的名称,若你的容器名称不同,需进行相应替换。
使用 sed 替换配置文件内容:
sed -i 's|https://updates.jenkins.io/update-center.json|https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json|g' /var/jenkins_home/hudson.model.UpdateCenter.xml
退出容器并重启 Jenkins 容器:
exit
docker restart jenkins
cat ~/.jenkins/secrets/initialAdminPassword
三、初始化配置
访问初始配置页面
在浏览器输入地址:http://服务器IP:端口号(如http://localhost:8090),如果是云服务器,那么需要在安全策略里面开放端口。
首次访问需获取初始管理员密码,可以在控制台上查看管理员密码,也可以通过一下命令查看管理员密码。
安装推荐插件
如果已经在后台配置镜像加速源,配置完成并重启服务后,我们可以在前端界面上选择安装推荐插件,会自动安装 Git、Maven 等常用插件。
如果没有配置镜像源,这里建议点击 选择插件来安装
,在点击 无
,不安装任何插件,再点击 安装
,因为我们没有配置镜像,安装插件是从外网下载过来的,会比较慢,并且下载的插件可能会出现不兼容等状况,导致失败率很高。
创建管理员
用户插件安装完成后,按提示创建用户(如账号admin,密码自定义),完成初始化。
进入以下页面配置 jenkins 的 url ,一般使用默认的就行了,保存并完成
重启 Jenkins
如需修改配置或插件,通过以下地址重启服务:
http://localhost:8090/restart
总结
参考文档
Linux - 安装 Jenkins(详细教程)
【Jenkins】之配置国内镜像加速
相关文章:

Jenkins流水线管理工具
文章目录 前言: DevOps时代的自动化核心 —Jenkins一、Jenkins是什么?二、Linux安装Jenkinswar包方式安装依赖环境下载 Jenkins WAR 包启动 Jenkins 服务启动日志验证配置插件镜像源 docker镜像方式安装依赖环境拉取 Jenkins 镜像运行 Jenkins 容器获取初…...

嵌入式开发:基础知识介绍
一、嵌入式系统 1、介绍 以提高对象体系智能性、控制力和人机交互能力为目的,通过相互作用和内在指标评价的,嵌入到对象体系中的专用计算机系统。 2、分类 按其形态的差异,一般可将嵌入式系统分为:芯片级(MCU、SoC&am…...

el-table中el-input的autofocus无法自动聚焦的解决方案
需求 有一个表格展示了一些进度信息,进度信息可以修改,需要点击进度信息旁边的编辑按钮时,把进度变为输入框且自动聚焦,当鼠标失去焦点时自动请求更新接口。 注:本例以vue2 element UI为例 分析 这个需求看着挺简单…...

一文了解智慧教育顶刊TLT的研究热点
本文聚焦于IEEE Transactions on Learning Technologies(TLT)期刊,通过图文结合的方式,梳理了2025年第18卷的研究热点,帮助读者把握教育技术与人工智能交叉领域的研究进展,深入了解智能学习系统、自适应学习…...

统计术语学习
基期、现期 作为对比参照的时期称为基期,而相对于基期的称为现期。 描述具体数值时我们称之为基期量和现期量。 【例 1】2017 年比 2016 年第三产业 GDP 增长 6.8%, (2016)为基期,(2017) 为现…...
NEGATIVE LABEL GUIDED OOD DETECTION WITH PRETRAINED VISION-LANGUAGE MODELS
1. 介绍: 这篇论文也是基于CLIP通过后处理的方法实现的OOD的检测,但是设计点在于,之前的方法是使用的ID的类别,这篇工作是通过添加一些在语义上非常不同于ID的类别的外分布类来做的OOD检测。 CLIP做OOD检测的这个系列里面我看的以及记录的第一篇就是MCM的方法,这也是确实是…...

飞机会员日
各航空公司会员日日期 主要航空公司会员日整理如下(数据截至2025年3月最新信息): 1 2 中国国际航空(国航) 每月"同月同日"(如1月1日、2月2日类推) 中国南方航空(…...
解读《数据资产质量评估实施规则》:企业数据资产认证落地的关键指南
随着“数据要素市场”建设加速,数据资产逐步成为企业核心资产之一。2024年4月,由中国质量认证中心(CQC)发布的《数据资产质量评估实施规则》(编号:CQC96-831160-2024)正式实施,为企业…...
常用第三方库:flutter_boost混合开发
常用第三方库:flutter_boost混合开发 前言 在移动应用开发中,混合开发是一个非常重要的话题。特别是对于已有原生应用想要引入Flutter的团队来说,如何实现Flutter页面和原生页面的无缝整合就显得尤为关键。本文将深入介绍flutter_boost这个…...

论分布式事务及其解决方案 架构师论文范文(考试笔记)
请围绕“论分布式事务及其解决方案”论题,依次从以下三个方面进行论述。 1、概要叙述你参与分析设计的软件项目以及你在其中所承担的主要工作。 2、请介绍4种分布式事务的解决方案及简单说明。 3、具体阐述你参与的软件项目是如何做到分布式事务的,过程中…...

ROS 快速入门教程04
12.激光雷达工作原理 激光雷达的作用是探照周围障碍物的距离,按照测量维度可以分为单线雷达和多线雷达。 按照测量原理可以分为三角测距雷达和TOF雷达。按照工作方式可以分为固态雷达和机械旋转雷达。 本次讲解以TOF雷达为例,雷达发射器发射激光遇到障碍…...

2025 年导游证报考条件新政策解读与应对策略
2025 年导游证报考政策有了不少新变化,这些变化会对报考者产生哪些影响?我们又该如何应对?下面就为大家详细解读新政策,并提供实用的应对策略。 最引人注目的变化当属中职旅游类专业学生的报考政策。以往,中专学历报考…...

vscode切换Python环境
跑深度学习项目通常需要切换python环境,下面介绍如何在vscode切换python环境: 1.点击vscode界面左上角 2.在弹出框选择对应kernel...

Spark-Streaming(三)
一. kafka和flume的整合 任务需求一:利用flume监控某目录中新生成的文件,将监控到的变更数据发送给kafka,kafka将收到的数据打印到控制台 1. 在flume/conf/目录下添加flume-kafka.conf文件 配置文件如下 2. 启动flume和kafka消费者 3. 传入数据 查看fl…...

SQLite 是什么?
📌 一、SQLite 是什么? SQLite 是一个轻量级、嵌入式数据库,意思是它直接集成在你的 App 内部,不需要单独安装数据库服务端。 ✅ 特点: 特点说明本地使用所有数据保存在手机内部存储文件形式数据以 .db 文件形式存储…...
两段文本比对,高亮出差异部分
用法一:computed <div class"card" v-if"showFlag"><div class"info">*红色背景为已删除内容,绿色背景为新增内容</div><el-form-item label"与上季度比对:"><div class"comp…...
成熟的前端vue vite websocket,Django后端实现方案包含主动断开websocket连接的实现
可参考实现方式点击进入查看 具体实现方案如下所示: import { useWebsocketMsessageStore } from /stores/websocketMsessageStore.js import {ElMessage} from "element-plus"; import {useUserStore} from "/stores/userStore.js"; // impo…...
2.5 桥梁桥面系及附属结构施工
2.5.1 桥面系施工 1.排水设施 设置纵横坡及泄水孔,减少桥面积水、防排结合。汇水槽、泄水孔顶面高程低于桥面铺装10-15mm。泄水孔边缘设渗水盲沟泄水管下端至少应伸出构筑物底面100-150mm。泄水管通过竖向管道直接引至地面或雨水管线。竖向管道抱箍、卡环、定位卡…...
Markdown格式思维导图——用DeepSeek从PDF内容提取关键信息的有效方法
结构化PDF的思维导图提取方法 当PDF文档结构清晰,包含明确的章节和小节标题时,可以使用以下提示词: 读取上方的PDF,请帮我生成一个结构清晰的思维导图,包含以下内容: 1. 提取PDF中的主要标题作为思维导图…...

海之淀攻略
家长要做的功课 家长可根据孩子情况,需要做好以下功课: 未读小学的家长:了解小学小升初派位初中校额到校在读小学的家长:了解小升初派位初中校额到校在读初中的家长:了解初中校额到校 越是高年级的家长,…...

PCIe具体解释分析
参考文章 PCIe总线详解_STATEABC-GitCode 开源社区 https://zhuanlan.zhihu.com/p/652808759 PCI总线学习(一):PCI总线结构-CSDN博客 PCI——第1章——PCI总线的基本知识-CSDN博客 计算机中register、cache、memory的区别 - Lines Blog 什么是内存管理单元ÿ…...
【阿里云大模型高级工程师ACP习题集】2.5 优化RAG应用提升问答准确度(⭐️⭐️⭐️ 重点章节!!!)
习题集 【单选题】在RAG应用的文档解析与切片阶段,若遇到文档类型不统一,部分格式的文档不支持解析的问题,以下哪种解决方式不可行?( ) A. 开发对应格式的解析器 B. 转换文档格式 C. 直接忽略该类型文档 D. 改进现有解析器以支持更多格式 【多选题】在选择向量数据库时,…...

Golang | 迭代器模式
迭代器模式(Iterator Pattern)是一种行为型设计模式,它提供了一种顺序访问聚合对象(如列表、树等集合结构)中元素的方法,而无需暴露其底层实现细节。通过将遍历逻辑与集合本身解耦,迭代器模式使…...

使用命令行加密混淆C#程序
C#作为托管语言编译生成的IL中间代码极易被反编译工具还原源码。据统计,超过83%的商业软件曾遭遇过代码逆向风险,导致核心算法泄露、授权被跳过. 因此对于C#语言开发的程序来说, 在发布前进行混淆和加密非常有必要. 本文主要介绍如何使用恒盾C#混淆加密…...
MYSQL 常用数值函数 和 条件函数 详解
一、数值函数 1、ROUND(num, decimals) 四舍五入到指定小数位。 SELECT ROUND(3.1415, 2); -- 输出 3.142、ABS(num) 取绝对值 SELECT ABS(-10); -- 输出 103、CEIL(num) / FLOOR(num) 向上/向下取整 SELECT CEIL(3.2), FLOOR(3.7); -- 输出 4 和 34、MOD(num1, num2) 取…...

当智驾成标配,车企暗战升级|2025上海车展
文|刘俊宏 编|王一粟 智能化无处不在的2025年上海车展,回归了卖车的初衷。 光锥智能在展会暴走两天,最大的感触是今年的车展少了争奇斗艳,多了些许务实。 回顾智能汽车时代的三场重要车展。2023年的上海车展充满了…...
QuecPython+GNSS:实现快速定位
概述 QuecPython 结合 GNSS(全球导航卫星系统)模块为物联网设备提供开箱即用的定位能力解决方案。该方案支持 GPS/北斗/GLONASS/Galileo 多系统联合定位,为物联网开发者提供从硬件接入到云端服务的全栈式定位解决方案。 优势特点 多体系定…...
[java八股文][Java基础面试篇]设计模式
volatile和sychronized如何实现单例模式 public class SingleTon {// volatile 关键字修饰变量 防止指令重排序private static volatile SingleTon instance null;private SingleTon(){}public static SingleTon getInstance(){if(instance null){//同步代码块 只有在第一次…...

在网上找的资料怎样打印出来?
在数字化时代,我们经常需要从互联网上获取各种资料,无论是学术论文、工作文档还是学习资料。然而,如何高效地将这些网上的资料打印出来,却是一个值得探讨的问题。本文将为您提供一个全面的解决方案,帮助您轻松完成网上…...

算法训练营 Day1
努力追上那个曾经被寄予厚望的自己 —— 25.4.25 一、LeetCode_26 删除有序数组中的重复项 给你⼀个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现⼀次 ,返回删除后数组的 新⻓度。元素的 相对顺序 应该保持 ⼀致 …...