网易首页 > 网易号 > 正文 申请入驻

太顶了!基于Jenkins的CI/CD环境搭建,一文看懂自动化部署!

0
分享至

早上8:30,你刚冲到工位,产品经理就发来消息:“昨晚的代码今天能上线吗?”你打开IDE,打包、上传服务器、停服、备份、部署、重启、测试……一套流程下来,半小时过去了。 如果有10个微服务呢?3个环境呢?每天发布3次呢? ——别慌,Jenkins 来了。
一、CI/CD 是什么?为什么要学?1.1 概念扫盲
  • CI(持续集成):开发人员频繁地将代码合并到主干,每次合并都通过自动化构建(编译、测试)来验证,尽早发现集成错误。
  • CD(持续交付/部署)
    • 持续交付:确保代码可随时部署到生产环境(需人工触发)。
    • 持续部署:代码变更自动部署到生产环境(全程无人干预)。
1.2 为什么需要 CI/CD?
  • 减少手动操作带来的失误
  • 快速反馈代码质量(提交即检测)
  • 统一部署流程,不再“本地跑得好好的”
  • 解放双手,专注写代码
一句话:让重复的事情自动化,让复杂的事情简单化。
二、Jenkins 是什么?有哪些特色?2.1 简介

Jenkins 是一个开源的、基于 Java 开发的自动化服务器,是目前最流行的 CI/CD 工具之一。它提供了数百个插件,几乎能与所有开发、测试、部署工具集成。

2.2 核心特色

特色

开源免费

社区活跃,生态丰富

插件生态

超过 1800 个插件,支持 Git、Maven、Docker、K8s 等

分布式构建

支持 Master-Agent 架构,多机并行

流水线即代码

Pipeline 使用 Groovy 编写,可版本化管理

多平台支持

Windows、Linux、macOS 通吃

Web 管理界面

配置直观,操作简单

三、Jenkins 与同类工具对比(表格必收藏)

特性

Jenkins

GitLab CI

GitHub Actions

CircleCI

开源免费

有限制

有限制

有限制

插件数量

1800+

中等

中等

配置复杂度

较高

中等

流水线语法

Groovy

YAML

YAML

YAML

学习成本

中高

适合场景

复杂流程、企业级

GitLab 生态

GitHub 生态

云原生团队

结论:如果你需要高度定制、私有化部署、兼容老旧项目,选 Jenkins 绝不会错。
⚙️ 四、Jenkins 工作原理(一张图搞懂)

text

开发者 push 代码 → Git(Webhook触发)→ Jenkins 拉取代码 → 编译/测试 → 构建镜像 → 推送镜像 → SSH 部署 → 通知结果

关键步骤详解:

  1. 代码触发:Git 仓库配置 Webhook,代码推送时通知 Jenkins。
  2. 拉取代码:Jenkins 从 Git 克隆最新代码。
  3. 构建:执行 Maven、Gradle、npm 等命令。
  4. 测试:运行单元测试、代码扫描(SonarQube)。
  5. 打包/镜像:生成 jar/war 包或 Docker 镜像。
  6. 部署:通过 SSH、K8s API、Ansible 等方式发布到目标服务器。
  7. 反馈:通过邮件、钉钉、Slack 通知结果。
五、Jenkins 环境搭建实战(手把手)
下面我们以 CentOS 7/8 为例,搭建一套完整的 Jenkins + Git + Maven + Docker 的 CI/CD 环境。
5.1 安装 Jenkins

推荐使用官方 RPM 包(稳定版)

bash

# 安装 Java 11(Jenkins 需要)sudo yum install -y java-11-openjdk-devel# 添加 Jenkins 源sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.reposudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key# 安装 Jenkinssudo yum install -y jenkins# 启动并设置开机自启sudo systemctl start jenkinssudo systemctl enable jenkins# 查看状态sudo systemctl status jenkins
  • 默认端口:8080
  • 配置文件:/etc/sysconfig/jenkins
  • 工作目录:/var/lib/jenkins
5.2 初始化 Jenkins
  1. 浏览器访问 http://你的服务器IP:8080
  2. 获取初始密码:sudo cat /var/lib/jenkins/secrets/initialAdminPassword
  3. 选择安装推荐插件(新手友好)
  4. 创建管理员用户
5.3 安装必要插件(必装清单)
  • Git Plugin
  • Pipeline Plugin
  • Maven Integration
  • Docker Pipeline
  • SSH Plugin
  • Blue Ocean(炫酷 UI,推荐)
  • Generic Webhook Trigger
安装路径:Dashboard → 系统管理 → 插件管理
5.4 配置全局工具

进入系统管理 → 全局工具配置

  • JDK:配置本地 JDK 路径(如 /usr/lib/jvm/java-11)
  • Git:默认自动安装
  • Maven:自动安装或本地路径
  • Docker:建议配置 Socket 连接 unix:///var/run/docker.sock
5.5 创建第一个 Pipeline 任务方式一:Freestyle 项目(不适合复杂流程,不推荐)方式二:Pipeline(⭐ 强烈推荐)
  1. 新建任务 → 选择Pipeline
  2. 启用Build Triggers→ 勾选 “Generic Webhook Trigger”
  3. Pipeline 定义选择 “Pipeline script from SCM” → Git 填入仓库地址
  4. 在代码仓库根目录创建 Jenkinsfile

一个典型的 Jenkinsfile 示例(Java + Maven + Docker):

groovy

pipeline {agent anytools {maven 'Maven-3.8.1'jdk 'JDK-11'stages {stage('代码拉取') {steps {git url: 'https://gitee.com/你的项目.git', branch: 'main'stage('编译打包') {steps {sh 'mvn clean package -DskipTests'stage('单元测试') {steps {sh 'mvn test'stage('构建 Docker 镜像') {steps {script {docker.build("myapp:${env.BUILD_ID}")stage('部署到服务器') {steps {sshagent(['你的SSH凭证ID']) {sh '''scp target/*.jar user@你的服务器:/app/ssh user@你的服务器 "systemctl restart myapp"post {success {echo '✅ 流水线成功'failure {echo '❌ 流水线失败,请检查日志'}
5.6 配置 Webhook
  • 在 Git 仓库(Gitee/GitHub) → 管理 → Webhook
  • 填写 URL:http://你的JenkinsIP:8080/generic-webhook-trigger/invoke
  • 触发事件:Push
这样每次推送代码,Jenkins 就会自动执行流水线。
5.7 Docker + Jenkins 进阶(可选)

bash

# 使用 Docker 运行 Jenkins(推荐用于测试/轻量环境)docker run -d \--name jenkins \-p 8080:8080 -p 50000:50000 \-v jenkins_home:/var/jenkins_home \-v /var/run/docker.sock:/var/run/docker.sock \jenkins/jenkins:lts
注意:需要在容器内安装 Maven、Java 等工具,或使用自定义镜像。
六、未来趋势:Jenkins 会被淘汰吗?6.1 当前挑战
  • 配置相对复杂(Groovy 语法不够友好)
  • UI 老旧(Blue Ocean 仍未全面替代)
  • 云原生环境下,Tekton、ArgoCD 等新兴工具冲击
6.2 未来方向
  • Jenkins X:基于 K8s 的云原生 CI/CD,自动管理环境、PR 预览。
  • 配置即代码(JCasC):完全用 YAML 管理 Jenkins 配置。
  • 更轻量的 Agent:动态 K8s Pod 作为构建节点。
结论:Jenkins 不会消失,但会逐渐演变为“云原生底座 + 可插拔流水线”的形态。对于传统企业和复杂场景,它依然是当前最优解。
✅ 七、Jenkins 的核心优势总结
  • 久经考验:诞生于 2011 年,生态极其成熟
  • 自由度高:几乎任何语言、任何工具都能集成
  • 自托管:数据不出企业,安全可控
  • 社区强大:95% 的问题都能搜到答案
  • 迁移成本低:老旧项目基本都能接进来
八、写在最后:一个普通程序员的逆袭没有 CI/CD 时的一天:
  • 09:00 提交代码,手动打包
  • 10:00 登录跳板机,备份旧包
  • 10:15 替换包,重启服务
  • 10:30 发版出错,紧急回滚
  • 14:00 再次尝试… 陷入内耗
有了 Jenkins 以后:
  • 提交代码 → 15 分钟后自动上线
  • 错误自动发邮件 → 修复后再次 push 即可
  • 开发、测试、生产环境一键复用
  • 每天多出 2 小时学习和划水(划掉)

CI/CD 不是炫技,而是对时间和稳定性的敬畏。Jenkins 也许不是最时髦的工具,但它绝对是让你从“部署工程师”变回“软件工程师”的利器。

你的每一次部署自动化,都是明天少加一次班的底气。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
山东俩儿非亲生再添猛料!男小3背景势力大,难怪敢盗取国家资源

山东俩儿非亲生再添猛料!男小3背景势力大,难怪敢盗取国家资源

另子维爱读史
2026-05-06 10:54:58
名宿:火箭不该拿杰伦-格林换杜兰特,只有詹姆斯能抵抗时间

名宿:火箭不该拿杰伦-格林换杜兰特,只有詹姆斯能抵抗时间

懂球帝
2026-05-06 13:54:47
一代人的回忆!南京富人区知名商场,突然7折变卖!

一代人的回忆!南京富人区知名商场,突然7折变卖!

童童聊娱乐啊
2026-05-06 14:28:04
访华前,特朗普向31国抛出一个问题:中美若有摩擦,北约帮不帮

访华前,特朗普向31国抛出一个问题:中美若有摩擦,北约帮不帮

知法而形
2026-05-06 16:44:45
美国卖乌克兰1200套JDAM,俄真正麻烦的不是导弹而是“廉价精准”

美国卖乌克兰1200套JDAM,俄真正麻烦的不是导弹而是“廉价精准”

桂系007
2026-05-06 09:38:30
伊朗称将确保船只安全通过霍尔木兹海峡

伊朗称将确保船只安全通过霍尔木兹海峡

新京报
2026-05-06 19:11:05
这一次,上海房东要起飞了

这一次,上海房东要起飞了

魔都财观
2026-05-06 07:40:35
1958年蒋介石最后一次见张学良,说道:西安的事对国家损失太大了

1958年蒋介石最后一次见张学良,说道:西安的事对国家损失太大了

史之铭
2026-05-06 16:52:49
福建该市交通发展集团有限公司董事长因涉嫌严重违纪违法被查

福建该市交通发展集团有限公司董事长因涉嫌严重违纪违法被查

大闽门户
2026-05-06 15:28:57
20万一针?国研“超低价”CAR-T申报上市,胃癌、胰腺癌等破冰!

20万一针?国研“超低价”CAR-T申报上市,胃癌、胰腺癌等破冰!

无癌家园i
2026-05-06 17:45:44
女人有钱没钱,一眼就能看出来:没钱的女人,大多有这三个穷习惯

女人有钱没钱,一眼就能看出来:没钱的女人,大多有这三个穷习惯

荷兰豆爱健康
2026-05-04 12:57:32
苹果手表能预警高血压了,但有个30天门槛

苹果手表能预警高血压了,但有个30天门槛

算力游侠
2026-05-06 04:38:28
成都悄悄干大事!未来市中心可能要移到北边了!

成都悄悄干大事!未来市中心可能要移到北边了!

笔墨V
2026-05-06 14:48:11
注意!中老年男性有性生活和没性生活,差别居然这么大?

注意!中老年男性有性生活和没性生活,差别居然这么大?

皓皓情感说
2026-04-22 08:20:32
外交部:中方一贯反对没有国际法依据的单边制裁,已向英方提出严正交涉

外交部:中方一贯反对没有国际法依据的单边制裁,已向英方提出严正交涉

界面新闻
2026-05-06 15:53:01
不再是120/80,“新血压标准”已公布,别再自己吓自己!

不再是120/80,“新血压标准”已公布,别再自己吓自己!

芹姐说生活
2026-04-14 23:27:03
A股存储芯片股集体飙涨,多股20cm涨停,金螳螂11天9板,闻泰科技一字跌停

A股存储芯片股集体飙涨,多股20cm涨停,金螳螂11天9板,闻泰科技一字跌停

21世纪经济报道
2026-05-06 12:16:08
公安部提醒:换身份证后别急着走!这3个关键步骤多数人忽略

公安部提醒:换身份证后别急着走!这3个关键步骤多数人忽略

老特有话说
2026-05-04 16:04:22
朱珠4段感情都不简单,前任个个是人物,37岁却偏偏嫁给了普通人

朱珠4段感情都不简单,前任个个是人物,37岁却偏偏嫁给了普通人

一盅情怀
2026-05-05 14:28:22
1981年,孙飞虎在中山陵拍戏,有对台湾夫妇搭讪:我们见过蒋先生

1981年,孙飞虎在中山陵拍戏,有对台湾夫妇搭讪:我们见过蒋先生

浩渺青史
2026-05-06 18:24:22
2026-05-06 21:15:00
呼呼历史论
呼呼历史论
分享有趣的历史
405文章数 16962关注度
往期回顾 全部

科技要闻

“马斯克不懂AI”:OpenAI当庭戳老底

头条要闻

知情人士:伊朗将同意将铀浓缩材料运出伊朗

头条要闻

知情人士:伊朗将同意将铀浓缩材料运出伊朗

体育要闻

活塞1比0骑士:坎宁安不再是一个人了

娱乐要闻

神仙友谊!杨紫连续10年为张一山庆生

财经要闻

最新GDP!全国30强城市,又变了

汽车要闻

领克10/领克10+ 无论能源形式 领克都要快乐

态度原创

健康
房产
本地
时尚
公开课

干细胞治烧烫伤面临这些“瓶颈”

房产要闻

遥遥领先!这个澄迈顶流红盘,凭什么持续霸榜

本地新闻

用青花瓷的方式,打开西溪湿地

春天穿“黑色”太沉闷?学会这些搭配小技巧,显瘦减龄还洋气

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版