Jenkins与Tivoli Workload Scheduler集成可行性及实现方式咨询
Jenkins与Tivoli Workload Scheduler(TWS)对接实现指引
这个需求完全可以实现,核心思路是通过TWS执行脚本触发Jenkins任务,轮询等待任务完成后将Jenkins的执行结果转换成TWS可识别的返回码。以下是具体落地方向:
一、先完成Jenkins的基础配置(无需深入Jenkins开发)
- 给目标Jenkins任务开启远程触发权限:
进入对应Jenkins任务的「配置」页面,找到「触发远程构建」选项,勾选后设置一个自定义的认证令牌(比如MY_BUILD_TOKEN=abc123)。同时在Jenkins全局安全配置中,确保允许远程API访问(可先开启匿名访问测试,后续再配置账号权限)。 - 测试远程触发及结果查询:
用命令行测试是否能触发任务,比如:
触发成功后,通过API获取任务构建号和执行状态:curl -X POST "http://你的Jenkins地址/job/你的任务名/buildWithParameters?token=abc123"
返回结果里的# 获取最新构建号 curl "http://你的Jenkins地址/job/你的任务名/lastBuild/buildNumber" # 查询该构建的执行状态 curl "http://你的Jenkins地址/job/你的任务名/构建号/api/json"building字段为false时表示任务完成,result字段(SUCCESS/FAILURE/ABORTED)对应执行结果。
二、在TWS中创建对接作业
在TWS里新建一个脚本类型的作业,脚本需要包含三个核心步骤:
- 触发Jenkins任务:调用上述curl命令触发任务,同时捕获并保存本次构建的编号。
- 轮询等待任务完成:写一个循环,每隔30秒左右调用一次Jenkins状态查询API,直到
building字段变为false。 - 转换并返回结果:根据Jenkins返回的
result字段,转换成TWS标准返回码(比如SUCCESS返回0,FAILURE返回1,ABORTED返回2),脚本以该码退出,TWS会自动捕获这个返回码。
三、关键注意事项
- 网络连通:确保TWS服务器能访问Jenkins的服务端口(默认8080),提前协调防火墙开放端口。
- 认证安全:如果Jenkins开启了权限控制,curl命令需要带上账号密码或API令牌,比如:
curl -u Jenkins用户名:API令牌 "http://你的Jenkins地址/..." - 异常处理:脚本中要增加错误判断,比如触发Jenkins失败、API查询超时等情况,都要返回对应的错误码,避免TWS作业无限挂起。
内容的提问来源于stack exchange,提问作者K.Hanberg
相关产品推荐
相关产品推荐

