找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2717

积分

0

好友

385

主题
发表于 15 小时前 | 查看: 1| 回复: 0

环境准备

本次演示的操作系统环境为 CentOS 7,涉及三台服务器,角色与IP分配如下:

  • Gitea 服务器(代码仓库):192.168.41.84
  • Jenkins 服务器(自动化部署):192.168.41.81
  • Nginx 服务器(测试环境):192.168.41.83

各服务的部署过程可参考相关文章,本文将重点讲解 Gitea 与 Jenkins 通过 Webhook 实现自动化构建的联动配置。

创建 Gitea 代码仓库

为了直观展示效果,我们创建一个简单的 HTML 静态页面项目。创建过程此处不再赘述,以下是一个已创建完成的仓库界面。

Gitea 仓库界面,展示项目提交记录

创建 Jenkins 任务

在 Jenkins 中创建一个新任务(例如自由风格的软件项目),关键配置步骤如下。

1. 源码管理配置

在“源码管理”部分选择 Git,填入 Gitea 项目的仓库地址(HTTP/SSH),并配置访问凭证(用户名/密码方式)。

Jenkins 源码管理配置,填入 Git 仓库地址

2. 构建触发器配置

这是实现自动构建的核心。勾选“触发远程构建(例如,使用脚本)”,并设置一个身份验证令牌(例如 jenkinsopsdev)。

Jenkins 构建触发器配置,勾选远程触发并设置令牌

配置成功后,界面会给出一个用于远程触发的 URL 模板:

JENKINS_URL/job/html_demo/build?token=TOKEN_NAME

请将 JENKINS_URL 替换为你 Jenkins 服务器的实际地址(IP或域名),TOKEN_NAME 替换为你刚刚设置的令牌字符串。将这个完整的 URL 记录下来,下一步在 Gitea 中会用到。

配置 Gitea 的 Webhook

现在,我们需要在 Gitea 仓库中设置 Webhook,使其在代码推送时自动调用 Jenkins 的触发 URL。

1. 进入 Webhook 管理界面

在 Gitea 项目仓库中,依次点击“设置” -> “Web 钩子”。

Gitea 仓库设置,进入 Web 钩子管理页面

2. 添加新的 Webhook

点击“添加 Web 钩子”按钮,在表单中填入从 Jenkins 获取的触发 URL,HTTP 方法选择 GET,触发条件选择“推送事件”。

Gitea Webhook 配置表单,填入 Jenkins 触发 URL 并选择触发事件

Gitea Webhook 配置,确认激活选项

配置完成后,可以点击“测试推送”按钮进行验证。如果配置正确,Gitea 会显示推送成功的状态码(如 201)。

Gitea Webhook 测试推送成功,返回状态码 201

此时,返回 Jenkins 界面,你会看到已经触发了一次新的构建任务。

Jenkins 构建历史,显示由 Webhook 触发的新构建记录

至此,一个基础的 Gitea + Jenkins Webhook 自动化部署流程就配置完成了。后续每次向该 Gitea 仓库的特定分支推送代码,都会自动触发 Jenkins 执行构建任务。

疑难问题解决

在实际配置过程中,你可能会遇到一些错误。以下是两个常见问题的解决方法。

问题一:Gitea Webhook 调用被拒绝

在 Gitea 中测试推送时,可能会遇到如下错误:

Delivery: Post "http://10.147.17.157:8081/job/html_demo/build?token=jenkinsopsdev": dial tcp 10.147.17.157:8081: webhook can only call allowed HTTP servers

Gitea Webhook 测试失败,提示调用被限制

解决方法:
此错误是因为 Gitea 默认出于安全考虑,限制了 Webhook 可以调用的主机。需要修改 Gitea 的配置文件 /data/gitea/conf/app.ini,在 [webhook] 部分添加允许访问的 Jenkins 服务器 IP。

[webhook]
ALLOWED_HOST_LIST = 10.147.17.157

请将 10.147.17.157 替换为你 Jenkins 服务器的真实 IP。修改后,重启 Gitea 服务使配置生效。

问题二:测试推送时报 403 认证错误

如果测试时返回 HTTP 403 状态码,提示 “Authentication required”。

Webhook 调用 Jenkins 返回 403 认证错误

解决方法:
这是因为 Jenkins 的匿名用户没有触发构建的权限。需要登录 Jenkins,进入 系统管理 -> 全局安全配置
在“授权策略”设置区域,找到并勾选 “匿名用户具有可读权限” 选项,然后保存配置。

Jenkins 全局安全配置,勾选允许匿名用户读取

完成此配置后,Gitea 的 Webhook(作为匿名请求)就能成功触发 Jenkins 构建了。当然,在生产环境中,建议配置更安全的认证方式,如使用 Jenkins 的 API Token。

希望这篇基于 CentOS 7 的 Gitea 与 Jenkins 集成指南能帮助你快速搭建自动化构建流水线。如果你在实践过程中遇到其他问题,欢迎在云栈社区与更多开发者交流探讨。




上一篇:Ubuntu 24.04/22.04 安装 GDebi:轻松解决 deb 包依赖问题
下一篇:Pandas电商订单数据分析全流程实战:从数据清洗到可视化
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-26 19:51 , Processed in 0.346606 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表