如何在Ubuntu上配置Jenkins的构建触发器
导读:在 Ubuntu 上配置 Jenkins 的构建触发器 一 前置准备 安装 Java 11(Jenkins 2.x 常用版本):sudo apt update && sudo apt install -y openjdk-...
在 Ubuntu 上配置 Jenkins 的构建触发器
一 前置准备
- 安装 Java 11(Jenkins 2.x 常用版本):sudo apt update & & sudo apt install -y openjdk-11-jdk
- 安装并启动 Jenkins:sudo systemctl start jenkins & & sudo systemctl enable jenkins
- 访问 http://< 服务器IP> :8080 完成解锁与初始化(初始管理员密码:sudo cat /var/lib/jenkins/secrets/initialAdminPassword)
- 在 Manage Jenkins → Manage Plugins 安装常用插件:Git plugin、Pipeline、JUnit、HTML Publisher(按项目需要增减)
二 内置触发器配置 下表汇总了常用的 4 种内置触发器、配置位置与示例,按需选择其一或组合使用。
| 触发器 | 配置位置 | 关键配置 | 典型示例与说明 |
|---|---|---|---|
| 触发远程构建 | 项目配置 → 构建触发器 → 勾选“触发远程构建”,设置身份验证令牌 | 生成 URL:JENKINS_URL/job//build?token=;如需传参:buildWithParameters?token= | 示例:http://192.168.1.10:8080/job/demo/build?token=abc123;适合脚本、外部系统、按钮触发 |
| 其他工程构建后触发 | 项目配置 → 构建触发器 → 勾选“Build after other projects are built” | 选择前置工程;可勾选“只有构建稳定时触发” | 用于串联流水线/多模块,前置成功后自动触发本工程 |
| 定时构建 Build periodically | 项目配置 → 构建触发器 → “日程表” | 使用 Cron 语法(分 时 日 月 周),建议用 H 平滑负载 | 示例:H/30 * * * *(每 30 分钟);H 2 * * *(每天 2:00) |
| 轮询 SCM Poll SCM | 项目配置 → 构建触发器 → “日程表” | 定时扫描远端仓库变更,变更则触发 | 示例:H/5 * * * *(每 5 分钟);注意其会定时拉取代码,存在一定开销 |
说明与要点:
- Cron 字段顺序为:分 时 日 月 周;H 表示“哈希分散”,避免同一时刻集中触发。
- 轮询 SCM 与“定时构建”不同:前者以“代码是否有变更”为条件,后者以“时间”为条件;轮询会带来额外负载,通常优先使用 Webhook 替代。
三 代码托管平台的 Webhook 触发
- GitHub
- 安装插件:GitHub plugin(或 GitHub Integration 插件)
- 项目配置 → 构建触发器 → 勾选 “GitHub hook trigger for GITScm polling”
- GitHub 仓库 → Settings → Webhooks → Add webhook
- Payload URL:JENKINS_URL/github-webhook/
- Content type:application/json
- Events:选择 Push events(可按需选 Pull requests 等)
- 勾选 Active,保存后测试推送,Jenkins 应自动触发构建
- GitLab
- 安装插件:GitLab Plugin、GitLab Webhook Trigger
- 项目配置 → 构建触发器 → 勾选 “Build when a change is pushed to GitLab”(或“GitLab webhook”)
- GitLab 项目 → Settings → Webhooks
- URL:JENKINS_URL/project/
- Trigger:Push events、Merge Request events 等
- 若 Jenkins 在内网,需在 GitLab 管理后台开启:Admin → Settings → Network → Outbound requests → Allow requests to the local network from web hooks and services
- 保存并发送测试请求,确认返回 HTTP 200 后,推送代码验证自动触发
提示:
- Webhook 是“事件驱动”,相较“轮询 SCM”延迟更低、资源占用更少,推荐优先采用。
四 安全与网络要点
- 远程触发 URL 包含 token,请妥善保管;如对外网开放,建议结合 反向代理 + HTTPS 与访问控制
- 若 Jenkins 位于内网 且由 GitLab/GitHub 触发,需要在代码平台侧开启“允许向本地网络发送请求”的选项(GitLab 见上文路径)
- 使用 Cron 时尽量采用 H 占位符分散负载,避免“雪崩效应”
- 建议为触发器配合 CSRF 保护 与必要的 权限控制,避免被恶意触发
五 快速验证
- 远程触发:在浏览器或命令行执行 curl -I “JENKINS_URL/job//build?token=”,返回 201 Created 表示已入队
- Webhook:在代码平台执行一次 Push 或 Merge Request,查看项目页面是否立即出现新的构建
- 定时/轮询:观察“下次执行时间”与“构建历史”,确认按预期触发
- 查看日志:进入构建页面 → Console Output,排查触发器参数、网络请求与权限问题
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在Ubuntu上配置Jenkins的构建触发器
本文地址: https://pptw.com/jishu/749147.html
