Jenkins入门:持续集成与持续交付基础、Jenkins核心概念、安装方式与初始配置

持续集成与持续交付:到底在解决什么问题?

说实话,很多刚接触DevOps的同学会被“持续集成”“持续交付”这些词绕晕。我当年也是一样——觉得不就是自动编译一下代码吗?后来在项目中吃过亏才明白:持续集成(CI)核心是让团队每天多次合并代码,每次合并都自动触发构建和测试;持续交付(CD)则是让每次通过测试的代码都能一键部署到类生产环境。

你想想看,如果没有自动化,开发写完代码要手动编译、手动跑测试、手动部署——一个十人团队一天能发两次版本就烧高香了。但用了Jenkins这类工具,一天发几十次都不是问题。

关键区别速览

概念核心动作产出物
持续集成(CI)频繁合并代码 + 自动构建测试可验证的构建产物
持续交付(CD)自动部署到类生产环境随时可上线的版本
持续部署(更进阶)自动部署到生产环境每次通过测试自动上线

我个人习惯把CI比作“质量关卡”,CD比作“快递通道”。没有CI,代码质量没保障;没有CD,交付效率上不去。

Jenkins核心概念:一张图说清楚

Jenkins到底是个什么东西?说白了就是一个可扩展的自动化调度引擎。它本身不编译、不测试、不部署,但它会按你的配置去调用各种工具(Git、Maven、Docker、Ansible……)并串联成流水线。

下面这张图是我特意为本章画的——它把Jenkins的5个核心概念串在了一起,方便你建立全局认知。

Jenkins 核心概念关系图 持续集成 / 持续交付 CI/CD 理念驱动 Master / Agent 分布式任务调度 Pipeline 流水线即代码 Job / 任务 构建、测试、部署单元 插件生态 Git / Maven / Docker 等 视图 & 凭证 组织 & 安全 💡 理解顺序: CI/CD 理念 → 由 Pipeline 描述 → 在 Master/Agent 上执行 → 每个步骤是 Job → 依赖插件扩展能力 → 通过视图和凭证管理。 我用过的团队几乎都踩过“装了一堆插件却不理解Pipeline”的坑,所以建议你从左上开始看。

安装方式:选对路子省一半时间

Jenkins的安装挺灵活的,我见过五种主流方式。这里只推荐三种最实用的:

  1. Docker 一键运行(我最喜欢的方式)
  2. 原生安装包(.war / .rpm / .deb)
  3. 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)是最快的测试方式:

  1. 点“新建任务”,输入名称,选择“自由风格项目”。
  2. 在“构建”步骤中选择“执行 shell”或“执行 Windows 批处理命令”。
  3. 命令行里写一句 echo "Hello Jenkins!",然后保存。
  4. 点击“立即构建”,看控制台输出。

如果你看到绿色的成功标志和“Hello Jenkins!”,恭喜,你的Jenkins已经可以正常工作了。我记得第一次跑通的时候,那种成就感虽然很小,但真的会让人爱上自动化。

自由风格项目虽然简单,但它背后包含了Jenkins最基础的概念:触发条件(手动/定时/SCM钩子)、构建步骤(任意命令)、构建后操作(归档、通知)。这些后面都会在Pipeline里重新用到。

给新手的几点建议

我总结的三个“先做后优化”原则:

  • 先跑通一个Job,再研究Pipeline语法。
  • 先用默认插件,遇到缺的能力再搜索。
  • 先本地单机,别一上来就搞Master/Agent分布式——那会引入认证、网络、权限一堆麻烦。

Jenkins的学习曲线其实挺平缓的:安装配置半小时,跑通第一个Job十分钟。难的是后面如何设计可维护的流水线——但那是后面章节的事了。这一章你只需要确保环境能用、知道核心概念长什么样,就足够了。