智能
助手
最大化  清空记录 停止  历史记录
翻译选中文本
选中一段文本后进行翻译
名词解释
选中一段文本后进行名词解释
知识图谱生成
通过图谱展示知识信息
登录用户在知识浏览页面可用
答案生成
AI自动回答一个问答功能中的问题
登录用户在问答浏览页面,且问题开放回答中可用
知识摘要
自动为当前知识生成摘要
知识浏览页面可用
知识问答
针对当前知识进行智能问答
知识浏览面可用
   33  
查询码: 00000177
5. Jenkins服务
作者: 文艺范儿 于 2025年11月17日 发布在分类 / DevOps / jekins ,于 2025年11月17日 编辑
DevOps jenkins

5. Jenkins服务

5.1 Jenkins简介

官网:官网 jenkins.io

华为开源软件下载站:https://repo.huaweicloud.com/jenkins/

Jenkins 是一个开源的、用 Java 编写的持续集成和持续交付(CI/CD)工具。它的核心功能是自动化软件开发过程中的各种任务,例如构建、测试和部署。

你可以把它想象成一个不知疲倦的、高度可定制的“自动化机器人”,它 7x24 小时待命,一旦有代码变更(比如开发者提交了新代码),它就会自动开始工作,确保这些变更能够被快速、可靠地整合到软件中并交付给用户。

要理解 Jenkins,必须先理解 CI/CD:

  • 持续集成(CI):开发人员频繁地将代码合并到共享的主干(如 Git 仓库)。每次合并都会触发一个自动化的流程(由 Jenkins 执行),包括编译代码、运行自动化测试。目标是快速发现并修复集成错误,提高软件质量。

  • 持续交付/持续部署(CD):是 CI 的延伸。在代码通过所有测试后,Jenkins 可以自动将应用部署到测试、预发布甚至生产环境。持续交付是“可以随时部署”,持续部署,“自动部署”。

简单比喻:

  • 没有 Jenkins(手工操作):像手工组装汽车,每个步骤都需要人工检查、搬运、测试,效率低,容易出错。

  • 有 Jenkins(自动化流水线):像现代化的汽车生产线,代码提交就像送上流水线,后续的构建(组装)、测试(质检)、部署(下线)全部自动完成。

Jenkins 的主要特点

  1. 开源免费:Jenkins 是开源软件,拥有庞大的社区支持,插件生态极其丰富。

  2. 易于安装和使用:它提供独立的安装包,可以运行在任何支持 Java 的主流操作系统上。也提供 WAR 包,可以轻松部署到 Servlet 容器(如 Tomcat)中。

  3. 强大的插件生态系统:这是 Jenkins 的核心优势。有超过 1800 个插件,可以无缝集成各种开发工具(如 Git、Docker、Kubernetes、Maven、Gradle、Jira 等),几乎能满足任何自动化需求。

  4. 流水线即代码:Jenkins 支持使用 Jenkinsfile(基于 Groovy 的 DSL)来定义整个构建、测试、部署的流程。这意味着流水线的配置可以和应用程序代码一起进行版本管理,方便审查和追溯。

  5. 分布式构建:Jenkins 可以将构建任务分发到多台计算机(称为“代理节点”或“从节点”)上执行,从而实现并行构建和测试,大大缩短流程时间。

Jenkins 的基本工作流程

一个典型的 Jenkins 自动化流程如下:

  1. 触发:开发者将代码推送到 Git 仓库(如 GitHub、GitLab)。

  2. 拉取:Jenkins 检测到代码变更(通过轮询或 Webhook),从仓库拉取最新代码。

  3. 构建:在 Jenkins 环境中编译源代码(例如,Java 代码用 Maven 或 Gradle 编译)。

  4. 测试:运行自动化测试(单元测试、集成测试等)。如果测试失败,Jenkins 会立即通知相关人员(如通过邮件、钉钉、Slack)。

  5. 报告:生成测试报告和代码覆盖率报告。

  6. 部署:(CD 阶段)如果所有步骤成功,Jenkins 会自动将应用部署到指定环境(如测试服务器、生产服务器)。

  7. 通知:将整个流程的结果通知给团队。

Jenkins 的两种常见形态

  1. 传统 Jenkins(单体架构):所有功能都集中在一个应用中。配置相对简单,但随着项目增多,管理会变得复杂。

  2. Jenkins Pipeline(流水线)当前的主流和最佳实践。使用 Jenkinsfile 将整个 CI/CD 流程定义为代码,流程更清晰、可维护性更强、功能更强大。

5.2 Jenkins安装

这里使用当前最新版本安装

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


5.3 登录Jenkins

粘贴图片

粘贴图片

粘贴图片

5.4 修改密码

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

粘贴图片

粘贴图片


5.5 插件安装

如果服务器在香港或者国外,可以在登录的时候选择全部插件安装,然后打包/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

5.6 创建项目

创建一个自由风格项目,执行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


通过配置web钩子触发jenkins自动拉取gitlab的代码,自动推送到web服务器完成测试

笔记
0人参与


 历史版本

备注 修改日期 修改人
创建版本 2025-11-17 22:26:19[当前版本] 文艺范儿

 附件

附件类型

PNGPNG

文艺知识分享平台 -V 5.2.5 -wcp