跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Javajava

Jenkins 自动化部署与流水线实战指南

Jenkins 开源自动化服务器,支持代码构建、测试、部署全流程自动化。基于 Linux 系统(CentOS/Ubuntu)演示环境准备、安装部署及初始化配置流程。重点讲解 Pipeline 流水线构建,通过 Jenkinsfile 定义声明式脚本实现拉取代码、Maven 构建、部署等阶段。包含国内插件镜像源优化方案及常见启动失败、插件安装等问题排查方法,适用于打造高效 CI/CD 研发流程。

樱花落尽发布于 2026/3/16更新于 2026/6/428 浏览
Jenkins 自动化部署与流水线实战指南

Jenkins 自动化部署与流水线实战指南

Jenkins 作为开源的自动化服务器,是 DevOps 核心工具之一,能够实现代码构建、测试、部署的全流程自动化。本文以主流的 Linux 系统(CentOS 7/8、Ubuntu 20.04/22.04)为例,从环境准备、安装部署、基础配置到流水线(Pipeline)构建,讲解 Jenkins 的核心使用方法。

一、环境准备

1. 系统要求

  • 操作系统:Linux(CentOS 7+/Ubuntu 20.04+),推荐 2 核 4G 以上配置
  • 依赖:Java(Jenkins 2.357+ 要求 Java 11,推荐 OpenJDK 11)
  • 网络:能访问外网(或配置内网源),开放 8080 端口(Jenkins 默认端口)

2. 安装 Java 环境

Jenkins 基于 Java 开发,必须先安装并配置 Java 环境,以下是 CentOS 和 Ubuntu 的安装方式:

CentOS 系统
# 安装 OpenJDK 11
yum install -y java-11-openjdk java-11-openjdk-devel

# 验证 Java 版本
java -version
# 输出类似:openjdk version "11.0.XX" 即为成功
Ubuntu 系统
# 更新源
apt update

# 安装 OpenJDK 11
apt install -y openjdk-11-jdk openjdk-11-jre

# 验证 Java 版本
java -version

二、Jenkins 安装部署

1. 安装 Jenkins

推荐通过官方源安装,保证版本最新且稳定:

CentOS 系统
# 安装依赖
yum install -y wget

# 添加 Jenkins 官方源
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key

# 安装 Jenkins
yum install -y jenkins

# 启动 Jenkins 服务
systemctl start jenkins

# 设置开机自启
systemctl enable jenkins

# 查看服务状态
systemctl status jenkins
Ubuntu 系统
# 安装依赖
apt install -y wget gnupg

# 添加 Jenkins 官方 GPG 密钥
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | gpg --dearmor -o /usr/share/keyrings/jenkins-keyring.gpg

# 添加 Jenkins 源
  |  /etc/apt/sources.list.d/jenkins.list > /dev/null


apt update
apt install -y jenkins


systemctl start jenkins
systemctl  jenkins
systemctl status jenkins
echo
"deb [signed-by=/usr/share/keyrings/jenkins-keyring.gpg] https://pkg.jenkins.io/debian-stable binary/"
tee
# 更新源并安装 Jenkins
# 启动并设置自启
enable

2. 防火墙与端口配置

Jenkins 默认监听 8080 端口,需开放端口权限:

CentOS 系统(firewalld)
# 开放 8080 端口
firewall-cmd --add-port=8080/tcp --permanent

# 重载防火墙规则
firewall-cmd --reload

# 查看开放端口
firewall-cmd --list-ports
Ubuntu 系统(ufw)
# 开放 8080 端口
ufw allow 8080/tcp

# 启用防火墙(若未启用)
ufw enable

# 查看规则
ufw status

3. 初始化 Jenkins

步骤 1:访问 Jenkins 页面

在浏览器中输入 http://服务器 IP:8080,首次访问会要求输入初始管理员密码。

文章配图

步骤 2:获取初始密码

方式一:jenkins 启动日志

文章配图

方式二:执行以下命令获取密码:

cat /var/lib/jenkins/secrets/initialAdminPassword

将输出的一串随机字符复制到页面输入框,点击'继续'。

步骤 3:安装插件
  • 推荐选择'安装推荐的插件',等待插件安装完成(网络慢可配置国内镜像源,见文末优化)。
  • 插件安装完成后,创建第一个管理员用户(输入用户名、密码、邮箱)。
  • 配置 Jenkins URL(默认即可),点击'开始使用 Jenkins',完成初始化。

文章配图 文章配图 文章配图

三、Jenkins 流水线(Pipeline)实战

Pipeline 是 Jenkins 的核心特性,通过代码(Jenkinsfile)定义自动化流程,支持持续集成 / 持续部署(CI/CD)。

1. 核心概念

  • Jenkinsfile:定义 Pipeline 的文本文件,支持 Declarative(声明式,推荐)和 Scripted(脚本式)两种语法。
  • Agent:指定流水线运行的节点(如本机 agent any)。
  • Stage:流水线的阶段(如拉取代码、构建、测试、部署)。
  • Step:阶段内的具体操作(如执行 shell 命令、调用插件)。

2. 实战:构建一个 Java 项目的 Pipeline

前提条件
  • 安装 Git 插件(已包含在推荐插件中)。
  • 服务器安装 Git:yum install git(CentOS)/ apt install git(Ubuntu)。
  • 准备一个 Java 项目(如 GitHub/Gitee 上的 Maven 项目)。
步骤 1:创建 Pipeline 任务
  1. 点击 Jenkins 首页'新建任务',输入任务名称(如 Java-Project-Pipeline)。
  2. 选择'流水线',点击'确定'。

文章配图

步骤 2:配置 Pipeline
  1. 在'流水线'配置区域,选择'Pipeline 脚本来自 SCM'(推荐,将 Jenkinsfile 托管到代码仓库),或直接在'脚本'框中编写(测试用)。
  2. 若选择 SCM:
    • 选择 Git,输入代码仓库地址(如 https://gitee.com/xxx/xxx-project.git)。
    • 配置凭证(私有仓库需添加用户名 / 密码或 SSH 密钥)。
    • 指定分支(如 */main)。
    • 指定 Jenkinsfile 路径(默认 Jenkinsfile,若在仓库根目录可直接使用)。
  3. 若直接编写脚本,复制以下声明式 Jenkinsfile 到'脚本'框:

文章配图

pipeline {
    // 任意可用节点运行
    agent any
    
    // 环境变量
    environment {
        // 项目构建目录
        PROJECT_DIR = '/var/jenkins/workspace/Java-Project'
    }
    
    // 构建触发器(可选:定时构建、代码提交触发)
    triggers {
        // 每分钟检查一次代码更新
        pollSCM('* * * * *')
    }
    
    // 流水线阶段
    stages {
        stage("Clean Workspace") {
            steps {
                script {
                    // 清空当前工作目录
                    deleteDir()
                }
            }
        }
        stage('拉取代码') {
            steps {
                echo '开始拉取代码...'
                // 拉取代码(若配置 SCM 则无需此步骤,此处为脚本式示例)
                // git url: 'https://gitee.com/xxx/xxx-java-project.git', branch: 'main'
                sh "git clone https://gitee.com/dromara/payment-spring-boot.git"
            }
        }
        stage('代码构建') {
            steps {
                echo '开始构建项目...'
                // 执行 Maven 构建(需安装 Maven 插件或服务器安装 Maven)
                sh 'cd payment-spring-boot ; mvn clean package -DskipTests'
            }
        }
        stage('部署到测试环境') {
            // 仅在 main 分支执行
            when {
                branch 'main'
            }
            steps {
                echo '部署到测试环境...'
                // 示例:复制 jar 包到测试服务器
                sh 'cp target/*.jar /opt/test-server/'
                // 重启测试服务
                sh 'systemctl restart test-server'
            }
        }
    }
    
    // 流水线结束后操作
    post {
        success {
            echo '流水线执行成功!'
        }
        failure {
            echo '流水线执行失败!'
            // 可选:发送邮件通知
            mail to: '[email protected]', subject: 'Pipeline 执行失败', body: '项目构建失败,请检查!'
        }
    }
}
步骤 3:运行 Pipeline

点击'保存'后,点击'立即构建',在任务页面可查看流水线执行进度:

  • 点击'阶段视图',直观查看各阶段执行状态。
  • 点击各阶段可查看日志(如构建失败,查看日志定位问题)。

3. Jenkinsfile 核心语法说明

语法说明
agent any在任意可用节点运行流水线
stage('名称')定义阶段
sh '命令'执行 shell 命令
git url: '地址', branch: '分支'拉取 Git 代码
environment定义环境变量
when条件判断(如分支、状态)
post流水线 / 阶段结束后的操作(成功 / 失败 / 始终)

四、Jenkins 优化与常见问题

1. 配置国内插件镜像源(解决插件安装慢)

修改 Jenkins 插件源为清华大学镜像:

# 进入 Jenkins 插件配置目录
cd /var/lib/jenkins/updates

# 备份原配置
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

# 重启 Jenkins
systemctl restart jenkins

或者:

文章配图

Advanced settings 地址改为:https://mirrors.huaweicloud.com/jenkins/updates/update-center.json

2. 常见问题解决

  • Jenkins 启动失败:检查 Java 版本是否符合要求(Jenkins 2.357+ 需 Java 11),查看日志:journalctl -u jenkins。
  • 插件安装失败:配置国内镜像源,或手动下载插件(hpi 文件)上传到 /var/lib/jenkins/plugins 目录,重启 Jenkins。
  • Pipeline 拉取代码失败:检查 Git 地址、凭证是否正确,服务器能否访问代码仓库(ping github.com 测试)。
  • Maven 构建失败:安装 Maven(yum install maven),或配置 Maven 国内镜像(修改 settings.xml)。

五、总结

本文从 Linux 环境下 Jenkins 的安装部署入手,完成了初始化配置,并通过实战案例讲解了 Pipeline 流水线的构建流程。Jenkins 的核心价值在于自动化,通过 Pipeline 可灵活定义 CI/CD 流程,适配不同语言(Java、Python、Go 等)和场景(前端构建、后端部署、容器化发布等)。

后续可进一步学习:

  • 配置 Jenkins 节点(分布式构建)。
  • 集成 Docker 实现容器化部署。
  • 结合 Kubernetes 实现动态节点调度。
  • 使用 WebHook 实现代码提交自动触发构建。

目录

  1. Jenkins 自动化部署与流水线实战指南
  2. 一、环境准备
  3. 1. 系统要求
  4. 2. 安装 Java 环境
  5. CentOS 系统
  6. 安装 OpenJDK 11
  7. 验证 Java 版本
  8. 输出类似:openjdk version "11.0.XX" 即为成功
  9. Ubuntu 系统
  10. 更新源
  11. 安装 OpenJDK 11
  12. 验证 Java 版本
  13. 二、Jenkins 安装部署
  14. 1. 安装 Jenkins
  15. CentOS 系统
  16. 安装依赖
  17. 添加 Jenkins 官方源
  18. 安装 Jenkins
  19. 启动 Jenkins 服务
  20. 设置开机自启
  21. 查看服务状态
  22. Ubuntu 系统
  23. 安装依赖
  24. 添加 Jenkins 官方 GPG 密钥
  25. 添加 Jenkins 源
  26. 更新源并安装 Jenkins
  27. 启动并设置自启
  28. 2. 防火墙与端口配置
  29. CentOS 系统(firewalld)
  30. 开放 8080 端口
  31. 重载防火墙规则
  32. 查看开放端口
  33. Ubuntu 系统(ufw)
  34. 开放 8080 端口
  35. 启用防火墙(若未启用)
  36. 查看规则
  37. 3. 初始化 Jenkins
  38. 步骤 1:访问 Jenkins 页面
  39. 步骤 2:获取初始密码
  40. 步骤 3:安装插件
  41. 三、Jenkins 流水线(Pipeline)实战
  42. 1. 核心概念
  43. 2. 实战:构建一个 Java 项目的 Pipeline
  44. 前提条件
  45. 步骤 1:创建 Pipeline 任务
  46. 步骤 2:配置 Pipeline
  47. 步骤 3:运行 Pipeline
  48. 3. Jenkinsfile 核心语法说明
  49. 四、Jenkins 优化与常见问题
  50. 1. 配置国内插件镜像源(解决插件安装慢)
  51. 进入 Jenkins 插件配置目录
  52. 备份原配置
  53. 重启 Jenkins
  54. 2. 常见问题解决
  55. 五、总结
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Stable Diffusion ComfyUI 整合包安装与部署指南
  • Clawdbot 源码部署实战:从环境搭建到 WebChat 验证
  • 网络安全基础与黑客技能入门指南
  • 2026年3月18日人工智能早间新闻
  • Flutter 三方库 arcade 的鸿蒙化适配指南
  • OpenClaw 本地部署教程:环境配置、插件开发与常见问题排查
  • Java 面向对象编程:封装机制详解与代码实现
  • 低空无人机 AI 算法详解:覆盖公安、消防、水利等 11 大行业
  • 多模态模型开发与应用:文本、图像与语音融合实践
  • MySQL 环境配置教程:CentOS 7 与 Ubuntu 双系统安装指南
  • Windows 10 本地部署 DataX 与 DataX-Web
  • FOC 电机控制深度解析:有感与无感原理及无人机应用
  • 绿联 NAS 配置 WebDAV 公网访问及 RaiDrive 挂载指南
  • 2026 年值得关注的开源低代码与零代码平台推荐
  • Python PyQt6/PySide6 现代化界面设计与美化实战
  • Go语言中的未来:从泛型到WebAssembly
  • Llama3 个人电脑本地部署与 WebUI 搭建指南
  • Python 全栈学习路线指南:入门、爬虫、数据分析与 Web 开发
  • AI Agent 架构:基础组成模块深度解析
  • OpenClaw 本地部署与 AI 助理自动化任务配置

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online