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

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

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

樱花落尽发布于 2026/3/16更新于 2026/7/2353 浏览
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. 五、总结
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

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

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

更多推荐文章

查看全部
  • GESP 2025 年 12 月 C++ 五级认证真题解析(单选 1-15)
  • 龙年 AI 生成封面图片玩法与变现指南
  • AMD 显卡部署 ComfyUI-Zluda 实战指南
  • C++ 红黑树封装笔记:从泛型复用看 Map 与 Set 的实现
  • Spring Data JPA 原理与实战:Repository 接口机制详解
  • 使用 C++ 构建简单的 RTSP 流媒体转发服务器
  • Lychee-Rerank 在统信 UOS 与申威 CPU 环境下的部署适配
  • C++主流日志库深度剖析:从原理到选型
  • 理解与预防 ChatGPT 中的常见误解
  • Meta-Llama-3-8B 智能对话系统搭建与性能实测
  • 腿式机器人 IMU 融合与状态估计实战
  • n8n 集成飞书机器人实战指南:环境配置与常见问题解决
  • Docker 部署 OpenClaw:Web UI 访问、飞书配对及模型配置
  • OpenClaw QQ 机器人接入完整指南
  • 基于 WebTop 与 Tailscale 的云端 OpenClaw 真实浏览器部署方案
  • 人工智能时代的产品经理:挑战、机遇与转型路径
  • 复旦微 FMQL45T900 ARM+FPGA 开发环境搭建指南
  • C++ 标准库 reverse 函数详解
  • 专业人士如何利用大模型重塑工作流程
  • VSCode Copilot 登录失败常见原因与排查方案

相关免费在线工具

  • 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