Jenkins CI/CD实战:持续集成与持续部署全指南

文章最后更新时间:2026-04-14 13:13:55

Jenkins是最流行的CI/CD工具,但配置复杂概念多。本文从实战角度讲解Jenkins,帮你快速搭建自动化部署流水线。

一、CI/CD核心概念

什么是CI?

持续集成:开发者频繁合并代码到主干,每次合并自动触发构建和测试。

什么是CD?

持续交付:代码通过测试后,自动部署到预生产环境。

什么是CDE?

持续部署:代码通过测试后,自动部署到生产环境。

为什么用Jenkins?

  • 开源免费:社区活跃,插件丰富
  • 功能强大:支持各种构建和部署场景
  • 配置灵活:支持流水线等方式
  • 易于扩展:插件生态丰富

二、环境部署

Docker部署

docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts

首次配置

  1. 访问 http://localhost:8080
  2. 输入初始密码解锁
  3. 安装推荐插件
  4. 创建管理员用户
  5. 配置JDK、Maven、Git等工具

三、流水线配置

Pipeline语法

pipeline { agent any stages { stage(Checkout) { steps { checkout scm } } stage(Build) { steps { sh mvn clean package } } stage(Test) { steps { sh mvn test } } stage(Deploy) { steps { sh docker build -t myapp:latest . } } } }

Jenkinsfile示例

pipeline { agent { docker maven:3.8-openjdk-8 } stages { stage(Build) { steps { sh mvn clean package } } stage(Test) { steps { sh mvn test } } } }

四、常用插件

Git插件:Git、Git Parameter、GitHub Integration

构建工具插件:Maven Integration、Gradle Plugin

部署插件:Docker Pipeline、Kubernetes、Ansible

通知插件:Email Extension、Slack Notification、DingTalk

五、自动化部署流程

流程设计

  1. 代码提交
  2. GitHub webhook触发Jenkins
  3. Jenkins拉取代码
  4. 编译构建
  5. 单元测试
  6. 镜像构建
  7. 部署到测试环境
  8. 自动化测试
  9. 部署到预生产环境
  10. 手动确认
  11. 部署到生产环境

测试环境部署

stage(Deploy to Test) { steps { sh docker build -t myapp:test-1 .; sh docker run -d --name myapp-test -p 8081:8080 myapp:test-1; } }

生产环境部署

stage(Deploy to Prod) { when { branch main } steps { input message: Deploy to Production?, ok: Deploy; sh docker-compose -f production.yml up -d; } }

六、通知配置

邮件通知

post { success { emailext subject: Jenkins Build Success, body: Build成功!, to: team@example.com; } failure { emailext subject: Jenkins Build Failed, body: Build失败!, to: team@example.com; } }

钉钉通知

post { success { dingtalk image: success.png, title: Build Success, text: 构建成功; } }

七、最佳实践

流水线即代码:Jenkinsfile纳入版本控制,代码即配置。

环境一致性:开发测试生产环境一致,使用Docker容器化。

安全配置:凭据安全存储,权限最小化,敏感信息加密。

性能优化:使用并行构建,增量构建避免全量,构建缓存复用。

八、常见问题

Q:Jenkins构建慢怎么办?
A:使用增量构建、构建缓存、并行构建。

Q:如何管理敏感凭据?
A:使用Jenkins凭据存储,SSH密钥密码安全存储。

Q:可以部署到K8s吗?
A:可以,使用Kubernetes插件或kubectl命令。

Q:流水线如何调试?
A:使用Blue Ocean可视化调试。

总结

Jenkins是CI/CD的核心工具。核心概念:CI持续集成、CD持续交付、CDE持续部署。流水线:Checkout-Build-Test-Deploy。常用插件:Git、Docker、K8s、通知插件。最佳实践:流水线即代码、环境一致性、安全配置、性能优化。掌握这些,自动化部署轻松实现。

瀚煜云提供Jenkins CI/CD方案及培训服务。

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容