AWX/Ansible Tower 工作流程的自定义作业状态

问题描述 投票:0回答:1

AWX/Ansible Tower 有自己的 REST API 服务。从下面的 URL 结构中,我可以获得有关正在进行或已完成的工作流程作业的信息:

https://<awx-ip>/api/v2/workflow_jobs/<job-id>/

但是此 URL 中的

status
字段未显示我想要的值。如果在此作业中运行的模板在执行过程中未出现错误,则该值始终显示
successful

因此,我需要一种方法通过此 REST API 服务来显示我想要的工作状态。也许可以编辑下面的字段,但我不知道如何编辑:

"job_explanation": ""

我只需要一个字段来提供有关正在进行或已完成的工作的自定义状态。例如

partial
failed
successful
ongoing

如何在正在进行的作业期间以及完成之后编辑或添加字段。有没有办法操作 Rest API 的作业统计字段?

ansible ansible-awx ansible-tower
1个回答
1
投票

根据 Ansible Tower API 参考指南 工作流程作业,作者 检索工作流作业

status: (choice)
可以具有以下值

new: New
pending: Pending
waiting: Waiting
running: Running
successful: Successful
failed: Failed
error: Error
canceled: Canceled

...正在进行或已完成的工作的状态

所以状态应该已经存在了。

例如“部分”、“失败”、“成功”、“正在进行”等

所以看起来您正在寻找的选项已经在那里了

  • 正在进行 -> 运行
  • 部分 -> 取消
  • 失败 -> 失败
  • 成功->成功
curl --silent -u "${ACCOUNT}:${PASSWORD}" https://${TOWER_URL}/api/v2/workflow_jobs/${jobID}/ | jq .

导致输出

...
  "launch_type": "relaunch",
  "status": "running",
  "failed": false,
  "started": "2022-02-04T14:28:04.147633Z",
  "finished": null,
  "canceled_on": null,
  "elapsed": 17.367907,
  "job_args": "",
  "job_cwd": "",
  "job_env": {},
  "job_explanation": "",
...

...
  "launch_type": "relaunch",
  "status": "successful",
  "failed": false,
  "started": "2022-02-04T14:28:04.147633Z",
  "finished": "2022-02-04T14:28:24.156419Z",
  "canceled_on": null,
  "elapsed": 20.009,
  "job_args": "",
  "job_cwd": "",
  "job_env": {},
  "job_explanation": "",
...

也许可以编辑下面的字段,但我不知道如何编辑:

"job_explanation": ""

根据列出职位字段

job_explanation
:状态字段,用于指示作业无法运行和捕获标准输出(字符串)时的状态

因此可能不应该对其进行编辑。

如何在正在进行的作业中编辑或添加字段...

REST API 用于创建、启动、停止作业等,以远程控制 Tower 应用程序。这些值由应用程序设置,没有安全的选项可以通过 API 自行设置它们。

...完成后。有没有办法操作 REST API 作业统计信息上的字段?

可以直接在 PostgreSQL 应用程序数据库后端更改作业结果。

您也可以更改应用程序 ansible/awx/awx/api/urls/workflow_job.py.

© www.soinside.com 2019 - 2024. All rights reserved.