Jenkins API远程触发流水线需三步:配置触发Token、构造HTTP请求、确保权限与参数匹配;通过build或buildWithParameters接口,配合curl或Python requests调用,支持无认证/有认证及带参触发。
Jenkins API 远程触发流水线,核心在于三步:配置好触发凭证、构造合法请求、确保权限与参数匹配。不依赖界面点击,靠 HTTP 请求就能让流水线跑起来。
进到目标流水线的「配置 → 构建触发器」,勾选「触发远程构建(例如从脚本)」,在 Token 栏填一个自定义字符串(如 devops-trigger)。这个 Token 是校验身份的关键,和 Jenkins 用户的 API Token 无关,可独立设置、无需关联账号。
保存后,触发地址就固定为:
http://[JENKINS_URL]/job/[JOB_NAME]/build?token=[YOUR_TOKEN]
例如:http://192.168.204.15:8080/job/deploy-prod/build?token=devops-trigger
最轻量的方式是终端执行 curl。注意两点:一是 URL 中 token 参数必须存在;二是若 Jenkins 启用了登录认证,需带上用户凭据。
生产集成中多用 Python 封装逻辑,便于日志记录、异常重试和参数组装。
示例代码(使用 requests):
import requests
url = "http://jenkins-url/job/my-pipeline/buildWithParameters"
params = {"token": "mytoken", "branch": "develop", "version": "2.3.0"}
auth = ("admin", "112233abc")
resp = requests.post(url, params=params, auth=auth)
print(resp.status_code) # 成功返回 201
关键点:
• 使用 buildWithParameters 接口才能传参,不是 build;
• 参数走 params(URL 查询参数),非 JSON body;
• 若需更复杂参数(如嵌套对象或文件),则改用 POST + json body + Content-Type: application/json,并配合 Jenkins Pipeline 中的 parameters 块解析。
触发失败通常不是代码问题,而是配置或权限卡点: