首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Jenkins 教程:面向初学者手把手的教程

Jenkins 教程:面向初学者手把手的教程

作者头像
彭小波
发布2026-06-17 11:22:33
发布2026-06-17 11:22:33
5130
举报

Jenkins 教程概述

本 Jenkins 教程将全面讲解 Jenkins 的相关核心概念,带大家认识 Jenkins 最具特色的功能 ——Jenkins 流水线,并学习其管理与操作方法。同时,我们还会介绍 Jenkins 的安装步骤,以及如何借助 Jenkins 插件创建、调度和运行构建任务。

本教程将为你的 DevOps 学习之路打下基础,让你熟练掌握 Jenkins 的搭建方法,并能将其运用于持续集成工作中。

后续我将推出有关 Jenkins 系列视频教程,希望多多支持,如果大家关注的人多,我将打算免费向大家讲解。希望朋友们多多分享。

目录

  1. 什么是 Jenkins?
  2. Jenkins 的工作原理
  3. Jenkins 插件的安装
  4. Jenkins 构建任务的创建
  5. Jenkins 流水线

什么是 Jenkins?

Jenkins 是一款基于 Java 编写的自动化工具,内置多款适用于持续集成任务的插件。它可用于项目的持续构建与测试,能让代码的迭代集成工作更便捷。

Jenkins 可与多种部署和测试技术协同工作,助力软件的快速交付,同时通过任务自动化加速开发流程。它本质上是一款基于服务器的应用程序,需要 Tomcat 等网页服务器的支持。

Jenkins 之所以广泛普及,核心在于其能对重复执行的任务进行监控。在团队开发项目的过程中,Jenkins 会持续检查和校验代码,在开发初期就及时反馈潜在的错误或执行失败问题。

既然提到了 “持续集成” 这个概念,接下来我们就深入了解一下。

一、什么是持续集成?

持续集成(CI)是 DevOps 体系中至关重要的组成部分,核心作用是将 DevOps 的各个阶段整合起来。简单来说,它是一种编码实践方法,能让开发团队频繁地对代码做出小幅度修改,并通过版本控制工具进行管理。

持续集成的常规落地方式为:所有开发人员将代码推送到共享代码仓库,且每天推送的次数通常不止一次。这种方式非常适用于需要在不同平台、通过多种工具进行编码开发的项目。如今,搭建这样的机制,以并行方式集成和验证代码修改,已成为开发工作的刚需。

二、为什么要使用持续集成?

持续集成究竟有哪些优势?为何开发团队都会采用这种实践方法?以下为大家梳理持续集成的核心优点,解答上述问题:

Why use continuous integration
Why use continuous integration
  1. 降低集成风险:所有项目的开发工作都由多人协作完成,这会大幅增加集成过程中的出错概率。根据代码的复杂程度,集成时可能需要对代码做出大量修改,而持续集成能通过常态化的集成操作,有效缓解这类问题。
  2. 提升代码质量:集成风险的大幅降低,能让开发人员将更多的时间和精力投入到代码的功能开发上,打造更贴合业务需求的代码。
  3. 保障版本控制中代码的可用性:若提交的代码导致构建失败,系统会立即发送通知,避免其他开发人员拉取存在问题的代码。
  4. 减轻测试人员工作负担:保留代码的不同版本和构建记录,能让测试人员更高效地分析、定位和追踪程序漏洞。
  5. 缩短部署周期:部署流程的自动化,能节省大量的时间和人力成本。
  6. 增强开发信心:开发过程中无需担心程序突发故障,能让开发人员更安心,进而提升生产效率,开发出更高质量的产品。

接下来,我们通过一个实际案例进一步理解持续集成。

三、Jenkins 中的持续集成实例

假设现有一个医疗系统开发项目,该系统原本每天在固定时间从共享代码仓库拉取代码并执行构建操作。这种方式看似属于持续集成,但由于每天仅构建一次,只能在一天中的某个时间点发现代码漏洞。

要让该系统符合持续集成的要求,可对其进行优化:每当代码发生修改,就将其推送到共享代码仓库,并立即执行构建操作。

这样一来,所有开发人员基于最新代码进行开发时,能在漏洞出现的第一时间发现并解决问题。对于医疗系统这类核心关键系统而言,这种方式还能确保软件的实时更新迭代。

sample use case
sample use case

Jenkins 的工作原理

独立运行的 Jenkins 实例会大量占用磁盘和 CPU 资源。为解决这一问题,我们可通过配置从节点实现 Jenkins 的横向扩展,将主节点的部分工作负载分担至从节点。从节点是被配置为代表主节点执行任务的设备,主节点是 Jenkins 的基础安装端,负责执行基础操作并提供用户交互界面,而实际的任务执行工作则由从节点完成。

下图中,Jenkins 主节点负责管理用户界面,从节点则基于不同的操作系统搭建。[Jenkins 主从节点架构图]

Jenkins Master Slave Architecture
Jenkins Master Slave Architecture

Jenkins 主从节点在 AWS 上的搭建

那么,如何在 AWS 云平台上搭建 Jenkins 主从节点系统呢?具体步骤如下:

1. 主节点的创建

步骤 1:创建一台新的 EC2 实例,选用 2016.03 版本的亚马逊 Linux 系统镜像(AMI)。

步骤 2:执行以下命令更新系统并安装 Jenkins:

代码语言:javascript
复制
yum update –y wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
rpm –import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
yum install –y jenkins

注意:安装 Jenkins 时,需拥有系统的根用户权限或 sudo 管理员权限。

步骤 3:编辑/etc/sysconfig/jenkins配置文件,授权 Jenkins 访问插件所需的环境变量,并将系统默认时区修改为本地时区。

步骤 4:配置完成后,执行以下命令注册并启动 Jenkins 服务:

代码语言:javascript
复制
chkconfig jenkins on
service jenkins start

注意:上述步骤同样适用于在 CentOS 系统中安装 Jenkins。

步骤 5:Jenkins 服务已启用并运行,访问地址http://服务器IP:8080。跳转至 “入门引导” 页面后,获取并输入解锁密码,完成 Jenkins 的解锁操作。

代码语言:javascript
复制
unlock jenkins
unlock jenkins
unlock jenkins

至此,一个空的 Jenkins 主节点就搭建完成了,接下来我们开始配置从节点。

2. Jenkins 从节点的配置

我们需要完成从节点的配置,并将其信息添加至主节点的配置中,具体步骤如下:

步骤 1:以同样的方式创建一台新的 EC2 实例,确保拥有 sudo 或根用户权限。

步骤 2:执行以下命令安装 Java、Git、Docker 等基础依赖环境:

代码语言:javascript
复制
yum install -y docker git java-1.8.0-openjdk
curl -L https://github.com/docker/compose/releases/download/1.6.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

步骤 3:在 AWS 平台创建自定义系统镜像(AMI):进入 EC2 控制台,点击 “启动实例”,选中刚配置好的从节点实例,创建新镜像;镜像创建完成后,记录下对应的 AMI 标识。

launch
launch

步骤 4:配置主节点,使其关联该自定义 AMI,具体操作如下:

  1. 创建 AWS 访问凭证;
  2. 选择凭证并限定其系统使用范围,完成表单填写;
  3. 添加 AWS 为云服务提供商:
  4. 依次进入「管理 Jenkins」→「系统配置」→「添加新的云服务」→「Amazon EC2」,按要求完成表单配置。

至此,Jenkins 主从节点就配置完成了![Jenkins 主从节点配置完成界面]以上为默认的通用配置步骤,大家也可根据自身需求,调整参数进行 Jenkins 安装实践。

amazon ec2
amazon ec2

了解完 Jenkins 的工作原理后,接下来我们学习 Jenkins 插件的安装方法。

Jenkins 插件的安装

插件集成是 Jenkins 的核心功能之一,通过插件可为 Jenkins 核心功能扩展更多特性,让其成为更适配项目开发的工具。

接下来,我们将学习如何在 Jenkins 中查看、安装、修改、更新和卸载插件。

  1. 如需查看 Jenkins 支持的所有插件,可访问 Jenkins 插件索引库。
  2. 登录 Jenkins 后,点击左侧的「管理 Jenkins」选项,所有插件的管理操作(包括已安装插件的维护、新插件的安装与卸载)均可在此完成。
  3. 进入「插件管理」页面后,可搜索指定插件,或查看所有可用插件。
  4. 选中目标插件后,点击「无需重启直接安装」,即可快速安装插件并验证其功能,无需等待 Jenkins 重启。
  5. 如需卸载插件,进入「已安装插件」页面,选中待卸载的插件并点击「卸载」即可,注意:卸载插件后需重启 Jenkins,修改才能生效。[Jenkins 插件管理界面]
jenkins
jenkins

若需要使用某款插件的旧版本,可从对应官网下载该版本插件,再手动上传至 Jenkins 进行安装。

http
http

如果大家开发了自定义的 Jenkins 插件,可将其上传至插件仓库,为 Jenkins 社区的发展贡献力量。

接下来,我们继续学习 Jenkins 构建任务的创建方法。

Jenkins 构建任务的创建

构建指将源代码转换为可使用、可运行的程序形式的过程,核心是将代码编译为可执行文件,该过程通常由构建工具完成。

一般在开发的关键节点(如完成某个功能的集成后),会执行构建操作。基于持续集成的特性,Jenkins 支持构建流程自动化,可设置在特定时间或触发特定事件时自动执行构建,这一功能被称为「定时构建」。

1. 定时构建的创建

接下来,我们学习如何根据指定的时间或触发条件,配置 Jenkins 的定时构建任务,具体步骤如下:

步骤 1:在「构建触发器」模块中,勾选「定期构建」选项。

步骤 2:在输入框中填写定时参数,包括分钟、小时、日期、月份、星期。

定时参数的通用语法格式为:分钟(0-59) 小时(0-23) 日期(1-31) 月份(1-12) 星期(0-7)

builld triger
builld triger

以下为定时构建的参数配置示例:

  1. 每周一至周六的早上 8 点 30 分执行构建:30 08 * * 1-6
  2. 每周一至周五的下午 4 点,随机在 4 点到 4 点 59 分之间执行构建(基于项目哈希值确定具体时间):H 16 * * 1-5
  3. 午夜执行构建:@midnight59 23 * * 6
  4. 每小时执行一次构建:H * * * *

2. Git Webhook 触发构建

我们已经学习了基于时间的自动化构建配置方法,那如果想要实现「代码推送到仓库后,自动执行构建」该如何操作?

可通过配置 Git Webhook 实现该需求,具体步骤如下:

  1. 按照前文的插件安装方法,安装「GitLab Hook Plugin」插件。
  2. 若尚未创建项目,先新建一个 Jenkins 项目;下滑至「源码管理」模块,填写 Git 代码仓库的地址,并配置仓库访问凭证。
  3. 配置构建过程的执行步骤:点击「添加构建步骤」,根据项目需求配置具体的构建操作。注意:构建步骤的配置需结合实际业务需求和运行环境而定。
GIT Webhook
GIT Webhook
  1. 在 GitLab 中为代码仓库配置 Webhook:
    • 进入 GitLab 仓库实例,点击齿轮图标,选择「Webhook」选项;
    • 在 URL 输入框中填写:http://<Jenkins域名>/jenkins/gitlab/build_now/<项目名称>
    • 点击页面底部的「添加 Webhook」按钮。[GitLab Webhook 配置界面]
  2. 根据需求勾选所需的 Webhook 功能,配置完成后,即可实现代码推送触发 Jenkins 自动构建。
GIT Webhook
GIT Webhook

接下来,我们进入本教程的重点内容 ——Jenkins 流水线的学习。

Jenkins 流水线

什么是 CI/CD?

持续集成和持续交付(CI/CD)具体指什么?简单来说,它是一种编码实践方法,要求开发团队更频繁地对代码进行小幅度修改,并通过版本控制工具进行校验管理。

正如前文所述,持续集成(CI)的核心目标是实现应用程序构建和测试的自动化。由于代码的频繁迭代和团队的高效协作,采用该方法能有效提升软件质量。而持续交付(CD)是持续集成的延伸,承接了持续集成结束后的后续开发流程。

持续交付(CD)可实现向指定基础设施的版本发布全自动化,核心是确保代码修改能被自动推送至部署环境,同时自动完成服务器、数据库等相关服务的重启调用。

What is CI CD
What is CI CD

什么是 Jenkins CI/CD 流水线?

在探讨 CI/CD 时,我们常会提到「Jenkins CI/CD 流水线」,它具体是什么?又有什么作用?

Jenkins 流水线是将源代码转换为可发布版本的一系列任务和作业串联形成的自动化流程:当一个任务执行成功后,会自动触发流程中的下一个自动化任务。该流程也被称为「CD 流水线」「部署流水线」或「软件开发流水线」。

流水线的整个执行过程由一个监控管理程序负责,该程序会对流水线各环节进行管理、运行、监控和结果上报。接下来,我们了解其实际工作机制。

Jenkins 流水线的实际落地方式会因项目类型不同而有所差异,尽管整体工作流程一致,但在源码追踪、构建、指标收集和测试等环节的具体参数和实现方式上会有所区别。

上述的监控管理程序会对各个独立的作业进行管理,每个作业被设计为完成特定的功能(如测试、构建等),所有作业均具备自动化、可重复、高效的特点。当一个作业执行成功后,监控管理程序会立即触发流程中的下一个作业。借助自动化特性,流水线各环节出现的错误能被及时发现并修复,这一特性被称为「快速失败」。

「快速失败」指在流程执行的第一时间发现错误,并及时向对应负责团队发送通知。该特性的优势在于,系统会根据流程执行历史,将错误问题分配至对应的负责团队,便于问题的快速处理和解决。

Jenkins CI/CD 流水线的创建

了解了 Jenkins 流水线的概念后,接下来我们详细学习如何从零开始搭建 Jenkins CI/CD 流水线。

Creating a CI CD pipeline in Jenkins
Creating a CI CD pipeline in Jenkins

Jenkins 功能强大,可通过各类界面和工具实现整个 DevOps 流程的自动化,其核心流程如下:开发团队将代码提交至 Git 代码仓库,Jenkins 通过前端工具定义待执行的作业 / 任务,随后拉取代码并进入提交阶段,接着在构建阶段完成代码编译,最后借助 Docker 将代码部署至预发布环境。

以下为结合 Jenkins 和 Docker 搭建 CI/CD 流水线的具体步骤:

步骤 1:在虚拟机中打开终端,执行以下命令启动相关服务:

代码语言:javascript
复制
systemctl start jenkins
systemctl enable jenkins
systemctl start docker

步骤 2:通过指定端口打开 Jenkins,点击「新建项目」,开始创建新的作业任务。

步骤 3:选择「自由风格项目」,并填写自定义的项目名称。

步骤 4:进入「源码管理」模块,填写 Git 代码仓库地址,点击「应用」并「保存」。

步骤 5:进入「构建」模块,选择「执行 shell 脚本」。

步骤 6:编写并执行 shell 脚本,生成相关文件;脚本会自动拉取代码、安装项目依赖包,并完成应用程序的编译。

步骤 7:重复步骤 3 至步骤 5,编写新的 shell 脚本,实现代码在 Docker 中的集成和构建。

步骤 8:再次重复步骤 3 至步骤 5,创建一个新的作业(填写不同的作业名称),编写 shell 脚本检查 Docker 容器配置文件,并将应用部署至预定义的端口。

步骤 9:配置作业的触发关系:选中第一个作业(Job1),依次进入「构建后操作」→「构建其他项目」。

步骤 10:填写需要触发的后续项目名称,点击「保存」。

步骤 11:对第二个作业(Job2)重复步骤 9 的操作,配置其后续触发的项目。

步骤 12:创建流水线视图:点击页面的「+」号,选择「构建流水线视图」,并填写自定义的视图名称。

步骤 13:点击「运行」,启动系统中的 CI/CD 流水线流程。

步骤 14:构建完成后,访问localhost:8180/sample.text,即可运行部署完成的应用程序。

总结

至此,本 Jenkins 教程的核心内容就讲解完毕了,我们一起回顾了 Jenkins 的核心知识点:Jenkins 的定义及其在 CI/CD 体系中的作用、Jenkins 主从节点的搭建方法、丰富的 Jenkins 插件生态、构建任务的创建与定时配置,以及 Jenkins CI/CD 流水线的搭建等。建议大家尝试安装新的 Jenkins 插件,并将自定义插件上传至社区,助力 Jenkins 生态的发展。

通过本教程,大家掌握了构建任务的创建和定时调度方法,而 CI/CD 流水线的搭建是 Jenkins 的核心应用能力。想要更深入地掌握 Jenkins 的使用,建议大家动手创建不同的作业任务,配置多样化的定时参数,在实践中积累经验。

Jenkins 是目前最实用的 DevOps 工具之一,掌握 Jenkins 的使用技巧,会成为你职业发展中的重要竞争力。

希望本教程能帮助大家积累 DevOps 线上课程的相关知识,如果你想要在专业讲师的指导下系统学习 DevOps 课程,可报名参加我们的 DevOps 培训课程。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-03-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 酋长彭谈数据库 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Jenkins 教程概述
  • 目录
  • 什么是 Jenkins?
    • 一、什么是持续集成?
    • 二、为什么要使用持续集成?
    • 三、Jenkins 中的持续集成实例
  • Jenkins 的工作原理
    • Jenkins 主从节点在 AWS 上的搭建
      • 1. 主节点的创建
      • 2. Jenkins 从节点的配置
  • Jenkins 插件的安装
  • Jenkins 构建任务的创建
    • 1. 定时构建的创建
    • 2. Git Webhook 触发构建
  • Jenkins 流水线
    • 什么是 CI/CD?
    • 什么是 Jenkins CI/CD 流水线?
    • Jenkins CI/CD 流水线的创建
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档