You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Jenkins向Rundeck传递构件名称?传参触发作业遇阻

解决Jenkins触发Rundeck作业时BUILD_NUMBER参数传递失效的问题

我之前在整合Jenkins和Rundeck时也碰到过类似的参数传递坑,咱们从几个核心点入手排查和解决:

1. 确认Rundeck参数的正确传递格式

Rundeck接收外部参数时,必须遵循 option.选项名称=参数值 的格式,而非你尝试的 option=BUILD_NUMBER。你需要先核对Rundeck作业里的选项配置:

  • 打开Rundeck作业的配置页,找到那个关联Jenkins构件的URL选项,查看它的Name字段(比如如果选项命名为buildNumber,那参数应该写成option.buildNumber=$BUILD_NUMBER)。
  • 如果你的选项名称就是BUILD_NUMBER,那正确的参数写法是option.BUILD_NUMBER=$BUILD_NUMBER。

2. 检查Rundeck选项是否允许手动输入

你的URL选项是从Jenkins动态拉取构建号列表,但如果Rundeck设置了仅允许从下拉列表选择,直接传值会被拦截:

  • 进入Rundeck作业的选项配置界面,找到该URL选项,确保「Allow Manual Entry(允许手动输入)」的开关是打开的。
  • 这个设置默认通常是关闭的,只允许选列表里的值,所以你手动传递的BUILD_NUMBER会被判定为无效值。

3. 验证Jenkins的触发配置

如果你用Jenkins的Rundeck插件触发:

  • 在Jenkins的构建步骤中,找到「Trigger Rundeck Job」配置项,在「Job Options」区域添加键值对:
    • Key:填Rundeck里的选项名称(比如BUILD_NUMBER)
    • Value:填${BUILD_NUMBER}(Jenkins自带的环境变量)
  • 别直接在URL里拼接参数,插件会自动处理参数映射逻辑。

如果你用API/curl脚本触发:

如果是通过Jenkins的shell脚本调用Rundeck API,确保请求格式正确,示例如下:

curl -X POST "https://your-rundeck-server.com/api/40/job/[JOB_ID]/run" \
  -H "X-Rundeck-Auth-Token: [YOUR_RUNDECK_TOKEN]" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  --data "option.BUILD_NUMBER=${BUILD_NUMBER}"

记得替换[JOB_ID]和[YOUR_RUNDECK_TOKEN]为实际值,参数部分必须严格用option.选项名的格式。

4. 查看Rundeck执行日志定位问题

如果还是没解决,去Rundeck的执行日志里找线索:

  • 触发作业后,进入Rundeck的「Executions」页面,查看该次执行的日志,看是否有类似Invalid option value for 'BUILD_NUMBER'的错误提示,这能帮你快速判断参数是否被正确接收或验证失败。

内容的提问来源于stack exchange,提问作者user7802257

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:32:49