如何通过REST API查询指定job id对应的Ansible Tower任务状态
你使用的第一个接口/api/v2/jobs/{jobId}/就可以直接满足查询需求,无需调用其他包含事件、历史记录的接口。
该接口返回的JSON结构中,顶层的status字段值就是你需要的五类状态:PENDING、RUNNING、FAILED、SUCCESSFUL、CANCELLED,完全匹配你的需求。
你可以用如下curl+jq的组合直接提取状态值:
curl -u <你的Tower用户名>:<你的Tower密码> -k https://<你的Tower实例地址>/api/v2/jobs/<替换为实际jobId>/ | jq -r '.status'
参数说明:
-k:如果你的Tower使用自签名SSL证书,需要加该参数跳过证书校验,正式环境可移除jq -r:输出原始字符串,避免返回结果带多余引号
如果需要同时获取任务的关联信息,比如启动时间、结束时间、所属模板名称,可以调整jq的过滤规则:
curl -u <你的Tower用户名>:<你的Tower密码> -k https://<你的Tower实例地址>/api/v2/jobs/<替换为实际jobId>/ | jq -r '{status: .status, 启动时间: .started, 结束时间: .finished, 任务模板名: .summary_fields.job_template.name}'
内容的提问来源于stack exchange,提问作者vivek
相关产品推荐
相关产品推荐

