首页主机资讯如何在Ubuntu上配置Jenkins的构建触发器

如何在Ubuntu上配置Jenkins的构建触发器

时间2025-11-17 17:55:04发布访客分类主机资讯浏览1207
导读:在 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 pluginPipelineJUnitHTML 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 PluginGitLab 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:在代码平台执行一次 PushMerge Request,查看项目页面是否立即出现新的构建
  • 定时/轮询:观察“下次执行时间”与“构建历史”,确认按预期触发
  • 查看日志:进入构建页面 → Console Output,排查触发器参数、网络请求与权限问题

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何在Ubuntu上配置Jenkins的构建触发器
本文地址: https://pptw.com/jishu/749147.html
ubuntu虚拟机硬盘怎么扩容 ubuntu虚拟机内存如何分配

游客 回复需填写必要信息