| 备注 | 修改日期 | 修改人 |
| 创建版本 | 2025-11-17 22:26:19[当前版本] | 文艺范儿 |
官网:官网 jenkins.io
华为开源软件下载站:https://repo.huaweicloud.com/jenkins/
Jenkins 是一个开源的、用 Java 编写的持续集成和持续交付(CI/CD)工具。它的核心功能是自动化软件开发过程中的各种任务,例如构建、测试和部署。
你可以把它想象成一个不知疲倦的、高度可定制的“自动化机器人”,它 7x24 小时待命,一旦有代码变更(比如开发者提交了新代码),它就会自动开始工作,确保这些变更能够被快速、可靠地整合到软件中并交付给用户。
要理解 Jenkins,必须先理解 CI/CD:
持续集成(CI):开发人员频繁地将代码合并到共享的主干(如 Git 仓库)。每次合并都会触发一个自动化的流程(由 Jenkins 执行),包括编译代码、运行自动化测试。目标是快速发现并修复集成错误,提高软件质量。
持续交付/持续部署(CD):是 CI 的延伸。在代码通过所有测试后,Jenkins 可以自动将应用部署到测试、预发布甚至生产环境。持续交付是“可以随时部署”,持续部署,“自动部署”。
简单比喻:
没有 Jenkins(手工操作):像手工组装汽车,每个步骤都需要人工检查、搬运、测试,效率低,容易出错。
有 Jenkins(自动化流水线):像现代化的汽车生产线,代码提交就像送上流水线,后续的构建(组装)、测试(质检)、部署(下线)全部自动完成。
Jenkins 的主要特点
开源免费:Jenkins 是开源软件,拥有庞大的社区支持,插件生态极其丰富。
易于安装和使用:它提供独立的安装包,可以运行在任何支持 Java 的主流操作系统上。也提供 WAR 包,可以轻松部署到 Servlet 容器(如 Tomcat)中。
强大的插件生态系统:这是 Jenkins 的核心优势。有超过 1800 个插件,可以无缝集成各种开发工具(如 Git、Docker、Kubernetes、Maven、Gradle、Jira 等),几乎能满足任何自动化需求。
流水线即代码:Jenkins 支持使用 Jenkinsfile(基于 Groovy 的 DSL)来定义整个构建、测试、部署的流程。这意味着流水线的配置可以和应用程序代码一起进行版本管理,方便审查和追溯。
分布式构建:Jenkins 可以将构建任务分发到多台计算机(称为“代理节点”或“从节点”)上执行,从而实现并行构建和测试,大大缩短流程时间。
Jenkins 的基本工作流程
一个典型的 Jenkins 自动化流程如下:
触发:开发者将代码推送到 Git 仓库(如 GitHub、GitLab)。
拉取:Jenkins 检测到代码变更(通过轮询或 Webhook),从仓库拉取最新代码。
构建:在 Jenkins 环境中编译源代码(例如,Java 代码用 Maven 或 Gradle 编译)。
测试:运行自动化测试(单元测试、集成测试等)。如果测试失败,Jenkins 会立即通知相关人员(如通过邮件、钉钉、Slack)。
报告:生成测试报告和代码覆盖率报告。
部署:(CD 阶段)如果所有步骤成功,Jenkins 会自动将应用部署到指定环境(如测试服务器、生产服务器)。
通知:将整个流程的结果通知给团队。
Jenkins 的两种常见形态
传统 Jenkins(单体架构):所有功能都集中在一个应用中。配置相对简单,但随着项目增多,管理会变得复杂。
Jenkins Pipeline(流水线):当前的主流和最佳实践。使用 Jenkinsfile 将整个 CI/CD 流程定义为代码,流程更清晰、可维护性更强、功能更强大。
这里使用当前最新版本安装
1##安装jdk17 [root@201-jenkins ~]# rz -E rz waiting to receive. [root@201-jenkins ~]# ll 总用量 178216 -rw-r--r-- 1 root root 182486159 11月 14 00:10 jdk-17_linux-x64_bin.rpm [root@201-jenkins ~]# rpm -ivh jdk-17_linux-x64_bin.rpm 警告:jdk-17_linux-x64_bin.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID ad986da3: NOKEY 准备中... ################################# [100%] 正在升级/安装... 1:jdk-17-2000:17.0.11-7 ################################# [100%] [root@201-jenkins ~]# java -version java version "17.0.11" 2024-04-16 LTS Java(TM) SE Runtime Environment (build 17.0.11+7-LTS-207) Java HotSpot(TM) 64-Bit Server VM (build 17.0.11+7-LTS-207, mixed mode, sharing) 2##安装jekins [root@201-jenkins ~]# wget https://repo.huaweicloud.com/jenkins/redhat-stable/jenkins-2.528.2-1.1.noarch.rpm [root@201-jenkins ~]# ll -h jenkins-2.528.2-1.1.noarch.rpm -rw-r--r-- 1 root root 91M 11月 12 23:12 jenkins-2.528.2-1.1.noarch.rpm [root@201-jenkins ~]# rpm -ivh jenkins-2.528.2-1.1.noarch.rpm 警告:jenkins-2.528.2-1.1.noarch.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID ef5975ca: NOKEY 准备中... ################################# [100%] 正在升级/安装... 1:jenkins-2.528.2-1.1 ################################# [100%] 3##修改Jenkins启动用户为root 1)#修改启动配置的用户 [root@201-jenkins ~]# vim /usr/lib/systemd/system/jenkins.service ... User=root Group=root ... [root@201-jenkins ~]# systemctl daemon-reload 2)#安装字体配置 [root@201-jenkins ~]# yum -y install fontconfig 3)#启动jenkins并加入开机自启 [root@201-jenkins ~]# systemctl start jenkins [root@201-jenkins ~]# systemctl enable jenkins


修改完密码会重新登录,用户名为admin


如果服务器在香港或者国外,可以在登录的时候选择全部插件安装,然后打包/var/lib/jenkins/plugins目录,传到你想用的服务器使用,以下插件就是这样打包来的,注意jenkins版本和插件版本要匹配,不然会出现不兼容的情况。
1##上传插件到jenkins家目录 [root@201-jenkins ~]# cd /var/lib/jenkins/ [root@201-jenkins jenkins]# rz -E rz waiting to receive. [root@201-jenkins jenkins]# ll -h jenkins-plugins-2.528.tar.gz -rw-r--r-- 1 root root 308M 11月 16 21:48 jenkins-plugins-2.528.tar.gz 2##将插件解压到plugins目录中 [root@201-jenkins jenkins]# rm -rf plugins [root@201-jenkins jenkins]# tar xf jenkins-plugins-2.528.tar.gz 3##重启jenkins生效 [root@201-jenkins jenkins]# systemctl restart jenkins
创建一个自由风格项目,执行pwd命令,查看jenkins运行默认的路径所在位置






说明: 使用jenkins创建完项目后,系统会自动在jenkins的家目录/var/lib/jenkins/下创建一个workspace项目目录,并且在此目录下创建以项目名
称命名的目录。
后续jenkins拉取gitlab的代码就是存储在此项目目录下。
[root@201-jenkins ~]# ll /var/lib/jenkins/workspace/ 总用量 0 drwxr-xr-x 2 root root 6 11月 16 22:10 test_job