shell命令或脚本 调用远程jenkins并运行job
创始人
2025-05-28 10:39:58
0次

一、低版本Jenkins,或者不需要传递参数的job

        可以使用job中的token,shell命令调用执行。

 

shell命令:curl --url "JENKINS_URL/job/JOB_NAME/build?token={上述token}" --user username:password
curl --url "http://114.114.144.114:81/jenkins/job/c-serv/build?token=123321" --user admin:au0BESKNEg

二、高版本Jenkins,crsf认证机制

shell调用jenkins进行构建时,报错:

Error 403 No valid crumb was included in the request

HTTP Status 403 – Forbidden

The server understood the request but refuses to authorize it

解决办法:

1、关闭crsf认证机制

在Jenkins启动命令中,添加crsf关闭配置。

添加启动参数:-Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_

CSRF_PROTECTION=true

然后重启Jenkins服务,相应的任务即可远程shell调用执行。

传递普通字符串参数,调用job,举例:

curl -X POST http://10.10.10.10:8082/view/test/job/zgkx/job/zgkx-local/build --user admin:123321 --data-urlencode json='{"parameter": [{"name":"Status", "value":"Deploy"}]}'

 2、构造Crumb请求头,通过crsf认证

a)、Jenkins管理员账号登录:系统管理--管理用户--“选择用户”--设置--“API Token”添加新的token,复制新生成的token。

b)、调用接口获取Jenkins-Crumb

此处需要用到上步骤中的API Token。去请求Jenkins,返回得到Jenkins-Crumb

[root@localhost ~]# curl 'http://admin:11eef15513d7240e55@114.114.114.114:81/jenkins/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,%22:%22,//crumb)'
Jenkins-Crumb:dca55d24fce77f48cc308b4c394a5dc1     #返回值,过段时间会刷新

 c)、编写shell脚本,实时调用认证接口获取请求头

#!/bin/sh#当前账号及对应的token
token="admin:11eef15513d7240e55"#构建参数
param1="Deploy"
param2="xx"#获取Jenkins-Crumb
crumb=$(curl "http://$token@114.114.114.114:81/jenkins/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,%22:%22,//crumb)")### jenkins地址,调用含字符串参数job
jenkins_url1="http://$token@114.114.114.114:81/jenkins/job/test_pipeline/buildWithParameters?Parameters1=${param1}"
curl -H "$crumb" -X POST ${jenkins_url1}### jenkins地址,调用含文件参数job
jenkins_url2="http://$token@114.114.114.114:81/jenkins/job/serv/build?"
curl -H "$crumb" -X POST ${jenkins_url2} --form file0=@/var/lib/jenkins/workspace/serv/target/serv.jar --form json='{"parame
ter": [{"name":"target/serv.jar", "file":"file0"}]}'
官方API中调用示例:
curl -H "$crumb" -X POST JENKINS_URL/job/JOB_NAME/build \
--user USER:PASSWORD \
--form file0=@PATH_TO_FILE \
--form json='{"parameter": [{"name":"FILE_LOCATION_AS_SET_IN_JENKINS", "file":"file0"}]}'
# FILE_LOCATION_AS_SET_IN_JENKINS 是Jenkins的job中文件参数的名字。
# Please note, in this example, the symbol '@' is important to mention. Also, the path to the file is absolute path
curl -X POST http://JENKINS_URL/job/JOB_NAME/build  --form file0=@/home/user/Desktop/sample.xml --form json='{"parameter": [{"name":"harness/Task.xml", "file":"file0"}]}'

 

相关内容

热门资讯

科普!微乐小程序黑科技免费(辅... 科普!微乐小程序黑科技免费(辅助器),微乐游戏小程序脚本(有辅助挂存在)1、进入游戏-大厅左侧-新手...
推荐十款!微乐小程序辅助工具(... 推荐十款!微乐小程序辅助工具(作弊器),如何提高微乐自建胜率(真实有辅助挂)1、点击下载安装,微乐小...
热点推荐!微乐小程序辅助工具(... 热点推荐!微乐小程序辅助工具(外挂),微乐贵阳捉鸡麻将能不能开挂(有辅助挂规律)1、让任何用户在无需...
揭秘一下!微乐小程序辅助工具(... 揭秘一下!微乐小程序辅助工具(作弊器),微乐春天扑克开挂辅助插件(真实有辅助挂)1、微乐小程序辅助工...
今日百科!微乐小程序黑科技免费... 今日百科!微乐小程序黑科技免费(作弊器),微乐麻将脚本透视(有辅助挂秘笈)1.微乐小程序黑科技免费 ...
一分钟了解!微乐小程序黑科技免... 一分钟了解!微乐小程序黑科技免费(作弊器),微信微乐挂有没有(有辅助挂细节)1、实时微乐小程序黑科技...
总算了解!微乐小程序辅助工具(... 总算了解!微乐小程序辅助工具(透视挂),小程序微乐辅助器下载(有辅助挂辅助)1、总算了解!微乐小程序...
揭秘攻略!微乐小程序辅助工具(... 揭秘攻略!微乐小程序辅助工具(辅助器),贵州微乐自建房辅助软件下载(有辅助挂解惑)微乐小程序辅助工具...
今日重大通报!微乐小程序黑科技... 今日重大通报!微乐小程序黑科技免费(透视挂),微乐透视辅助功能插件下载(有辅助挂分享)1、上手简单,...
推荐十款!微乐小程序辅助工具(... 推荐十款!微乐小程序辅助工具(透视挂),微信小程序微乐辅助器免费版(真实有辅助挂)微乐小程序辅助工具...