はじめに
AAP (Ansible Automation Platform) はジョブの状態を API で取得できます。
レスポンスボディの JSON のうち、status を見ると、実行中なのか終わって成功したのかなどを確認できます。一方、failed という、これまたある意味状態を示しそうな項目もあります。
それぞれの関係について知らべたかったので、GUI 上の見え方、status の値、failed の値をセットで確認したことをまとめます。
- 検証環境
- AAP 2.5 2025/04/09 パッチリリース
API によるジョブの状態を取得には、https://{AAPホスト}/api/controller/v2/jobs/{id} を GET します。本記事ではレスポンスボディの JSON を抜粋して掲載します。
あくまで、私の環境で試したらこうなったという記録であり、リファレンスではありませんのでご了承ください。
先にまとめ
先にまとめます。
| GUI 上 | API の status |
API の failed |
|---|---|---|
| 成功 | "successful" |
false |
| 実行中 | "running" |
false |
| 失敗 | "failed" |
true |
| エラー | "error" |
true |
| 取り消し済み | "canceled" |
true |
| 保留中 | "pending" |
false |
なお、API のドキュメントによると status のバリエーションには他にも new、waiting がありますが、再現できませんでした。
成功
ごく普通にジョブテンプレートが起動できて、正常に終わったパターンです。
GUI:

API:
{ // 略 "status": "successful", // 略 "failed": false, // 略 }
特筆すべきところはないかなと思います。"status": "successful" なので成功だということが分かりますし、"failed": false なので、失敗はしていないことも分かります。
実行中
ジョブの実行が開始されたけど、まだ実行中で終わっていない状態です。
API でジョブテンプレートの実行のリクエスト(POST /api/controller/v2/job_templates/{id}/launch/)した場合でも、非同期に実行を開始するので、実行が完了しないうちに状態を確認すると実行中になります。
GUI:

API:
{ // 略 "status": "running", "execution_environment": 4, "failed": false, // 略 }
実行中であり、まだ成功か失敗かも分からない状態です。"failed": false です。
失敗
ジョブを実行したけど、正常に完了しなかったケースです。
今回は、マネージドノードに接続できない状態で再現しました。
GUI:

API:
{ // 略 "status": "failed", // 略 "failed": true, // 略 }
"failed": true となりました。明示的に、これは失敗、と示された印象です。
エラー
[2026/03/12 20:30 追記]
「エラー」の状態は、本記事の投稿当初は再現できていなかったのですが X で情報をいただきました。
検証環境がハイブリッドノード1つだったのでどうやろうかと思ったのですが、 receptor という名前のコンテナを停止(systemctl stop receptor.service --user)した状態でジョブテンプレートを起動したら「エラー」を再現できました。
GUI:

(せっかくなのでログも)

API:
{ // 略 "status": "error", // 略 "failed": true, // 略 }
取り消し済み
実行を開始したけど、完了前に取り消しした状態です。
今回はGUI上で「ジョブの取り消し」ボタンを押して再現しました。
GUI:

API:
{ // 略 "status": "canceled", // 略 "failed": true, // 略 }
"failed": true になるのは少し意外でした。
保留中
たとえば、ジョブテンプレートの同時実行が許可されていない設定(デフォルト)で、立て続けに同じジョブテンプレートを実行開始した場合は2回目以降の起動が保留になります。
GUI:

API:
{ // 略 "status": "pending", // 略 "failed": false, // 略 }
おわりに
成功したかどうかは、"failed": false ではなく "status": "successful" を見るのが良いのかなと思いました。