Jenkins入门:持续集成与持续交付基础、Jenkins核心概念、安装方式与初始配置
持续集成与持续交付:到底在解决什么问题?
说实话,很多刚接触DevOps的同学会被“持续集成”“持续交付”这些词绕晕。我当年也是一样——觉得不就是自动编译一下代码吗?后来在项目中吃过亏才明白:持续集成(CI)核心是让团队每天多次合并代码,每次合并都自动触发构建和测试;持续交付(CD)则是让每次通过测试的代码都能一键部署到类生产环境。
你想想看,如果没有自动化,开发写完代码要手动编译、手动跑测试、手动部署——一个十人团队一天能发两次版本就烧高香了。但用了Jenkins这类工具,一天发几十次都不是问题。
关键区别速览
| 概念 | 核心动作 | 产出物 |
|---|---|---|
| 持续集成(CI) | 频繁合并代码 + 自动构建测试 | 可验证的构建产物 |
| 持续交付(CD) | 自动部署到类生产环境 | 随时可上线的版本 |
| 持续部署(更进阶) | 自动部署到生产环境 | 每次通过测试自动上线 |
我个人习惯把CI比作“质量关卡”,CD比作“快递通道”。没有CI,代码质量没保障;没有CD,交付效率上不去。
Jenkins核心概念:一张图说清楚
Jenkins到底是个什么东西?说白了就是一个可扩展的自动化调度引擎。它本身不编译、不测试、不部署,但它会按你的配置去调用各种工具(Git、Maven、Docker、Ansible……)并串联成流水线。
下面这张图是我特意为本章画的——它把Jenkins的5个核心概念串在了一起,方便你建立全局认知。
安装方式:选对路子省一半时间
Jenkins的安装挺灵活的,我见过五种主流方式。这里只推荐三种最实用的:
- Docker 一键运行(我最喜欢的方式)
- 原生安装包(.war / .rpm / .deb)
- Kubernetes 部署(企业级场景)
我一般建议新手先用Docker,因为干净、好卸载、不污染系统。你在项目里如果只是临时搭个演示环境,Docker几分钟就能搞定。
🎯 快速启动命令(Docker版)
docker run -d -p 8080:8080 -p 50000:50000 \
-v jenkins_home:/var/jenkins_home \
--name jenkins \
jenkins/jenkins:lts-jdk17
注意端口映射:8080是Web界面,50000是Agent通信端口。
我曾经在客户现场遇到一个坑——他们直接用root权限装了rpm包,结果后续升级Jenkins时,家目录权限全乱了,花了半天修复。所以能用容器就别用宿主机安装,这是血的教训。
初始配置:解锁、插件、第一个用户
装完Jenkins后打开浏览器,输入http://localhost:8080,你会看到一个“解锁 Jenkins”的页面。这时候需要去容器或服务器上的日志里找初始密码:
docker logs jenkins 2>&1 | grep "Please use the following"
或者直接进容器看:
docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword
接下来会到“自定义插件”页面。我强烈建议新手选“安装推荐的插件”——官方推荐包已经包含了Git、Pipeline、Blue Ocean这些核心插件。别一开始就贪多,插件装多了启动慢,还容易冲突。
最后一步是创建管理员用户。嗯,这里要注意:密码强度别太简单,但也别搞个32位随机字符串自己都记不住。我用的是admin/passw0rd!@#这种级别,够安全也够好记。
⚠️ 避坑指南:有些教程会让你在第一次安装后立即修改JENKINS_HOME路径,但我不建议这么做。等跑通第一个Job后再考虑迁移——先求可行,再求优雅。
小试牛刀:创建一个自由风格任务
初始配置完成后,我们来验证环境是否正常。创建一个“自由风格项目”(Freestyle project)是最快的测试方式:
- 点“新建任务”,输入名称,选择“自由风格项目”。
- 在“构建”步骤中选择“执行 shell”或“执行 Windows 批处理命令”。
- 命令行里写一句
echo "Hello Jenkins!",然后保存。 - 点击“立即构建”,看控制台输出。
如果你看到绿色的成功标志和“Hello Jenkins!”,恭喜,你的Jenkins已经可以正常工作了。我记得第一次跑通的时候,那种成就感虽然很小,但真的会让人爱上自动化。
自由风格项目虽然简单,但它背后包含了Jenkins最基础的概念:触发条件(手动/定时/SCM钩子)、构建步骤(任意命令)、构建后操作(归档、通知)。这些后面都会在Pipeline里重新用到。
给新手的几点建议
我总结的三个“先做后优化”原则:
- 先跑通一个Job,再研究Pipeline语法。
- 先用默认插件,遇到缺的能力再搜索。
- 先本地单机,别一上来就搞Master/Agent分布式——那会引入认证、网络、权限一堆麻烦。
Jenkins的学习曲线其实挺平缓的:安装配置半小时,跑通第一个Job十分钟。难的是后面如何设计可维护的流水线——但那是后面章节的事了。这一章你只需要确保环境能用、知道核心概念长什么样,就足够了。