Jenkins流水线管理工具

news2025/7/15 0:44:40

文章目录

  • 前言: 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 是长期支持的版本,是稳定的版本

在下载安装包之前要先确定应该下载哪个版本的 JenkinsJenkins 的版本依赖于 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】之配置国内镜像加速

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2343502.html

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

相关文章

嵌入式开发:基础知识介绍

一、嵌入式系统 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) 为现…

飞机会员日

各航空公司会员日日期 主要航空公司会员日整理如下(数据截至2025年3月最新信息):‌ 1 2 ‌中国国际航空(国航)‌ 每月"同月同日"(如1月1日、2月2日类推) ‌中国南方航空&#xff08…

论分布式事务及其解决方案 架构师论文范文(考试笔记)

请围绕“论分布式事务及其解决方案”论题,依次从以下三个方面进行论述。 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 文件形式存储…

海之淀攻略

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

PCIe具体解释分析

参考文章 PCIe总线详解_STATEABC-GitCode 开源社区 https://zhuanlan.zhihu.com/p/652808759 PCI总线学习(一):PCI总线结构-CSDN博客 PCI——第1章——PCI总线的基本知识-CSDN博客 计算机中register、cache、memory的区别 - Lines Blog 什么是内存管理单元&#xff…

Golang | 迭代器模式

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

使用命令行加密混淆C#程序

C#作为托管语言编译生成的IL中间代码极易被反编译工具还原源码。据统计,超过83%的商业软件曾遭遇过代码逆向风险,导致核心算法泄露、授权被跳过. 因此对于C#语言开发的程序来说, 在发布前进行混淆和加密非常有必要. 本文主要介绍如何使用恒盾C#混淆加密…

当智驾成标配,车企暗战升级|2025上海车展

文|刘俊宏 编|王一粟 智能化无处不在的2025年上海车展,回归了卖车的初衷。 光锥智能在展会暴走两天,最大的感触是今年的车展少了争奇斗艳,多了些许务实。 回顾智能汽车时代的三场重要车展。2023年的上海车展充满了…

在网上找的资料怎样打印出来?

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

算法训练营 Day1

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

【linux】Chrony服务器

简介 1.1 时间的重要性 由于 IT 系统中,准确的计时非常重要,有很多种原因需要准确计时: 在网络传输中,数据包括和日志需要准确的时间戳 各种应用程序中,如订单信息,交易信息等 都需要准确的时间戳 1.2 时区…

技术视界 | 数据的金字塔:从仿真到现实,机器人学习的破局之道

在人工智能的世界里,有一个共识正逐渐达成——谁掌握了数据,谁就掌握了未来。 尤其是在机器人技术迅速演进的今天,“如何让机器人理解世界、学习操作”这一问题的根源,越来越回归到数据本身。正如一座金字塔般,不同层…