Documentation

9. カスタム通知でサポートされている属性

このセクションでは、サポート対象のジョブ属性リストと、通知用のメッセージテキスト作成に適した構文について説明します。サポートされるジョブ属性は以下のとおりです。

  • allow_simultaneous: (ブール値) 複数のジョブが、このジョブに関連付けられた JT から同時に実行できるかどうかを示す

  • controller_node: (文字列) 分離された実行環境を管理したインスタンス

  • created: (日時) ジョブの作成時のタイムスタンプ

  • custom_virtualenv: (文字列) ジョブの実行に使用されるカスタムの仮想環境

  • description: (文字列) ジョブの説明 (オプション)

  • diff_mode: (ブール値) 有効になっている場合、ホストのテンプレート化されたファイルに追加されるテキストの変更を標準出力に表示

  • elapsed: (10 進数) ジョブ実行の経過時間 (秒単位)

  • execution_node: (文字列) ジョブが実行されるノード

  • failed: (ブール値) ジョブが失敗した場合は true

  • finished: (日時) ジョブが実行を完了した日時

  • force_handlers: (ブール値) ハンドラーが強制されている場合、ホストでタスクが失敗した場合でも、通知された場合はハンドラーが実行される (ホストへの到達が不可能な場合など、状況によってはハンドラーの実行が回避されることに留意)

  • forks: (整数) ジョブに要求されたフォークの数

  • id: (整数) このジョブのデータベース ID

  • job_explanation: (文字列) stdout の実行およびキャプチャーができない場合のジョブの状態を示すための状態フィールド

  • job_slice_count: (整数) スライスされたジョブの一部として実行された場合には、スライスの合計数 (1 の場合はスライスされたジョブの一部ではない)

  • job_slice_number: (整数) スライスされたジョブの一部として実行された場合には、スライス処理が行われたインベントリーの ID (スライスされたジョブの一部でなければ属性は使用されない)

  • job_tags: (文字列) 指定されたタグを持つタスクのみが実行される

  • job_type: (選択肢) run、check、または scan

  • launch_type: (選択肢) manual、relaunch、callback、scheduled、dependency、workflow、sync、または scm

  • limit: (文字列) 指定された場合、このホストのセットに制限された Playbook を実行

  • modified: (日時) ジョブの最終更新時のタイムスタンプ

  • name: (文字列) このジョブの名前

  • playbook: (文字列) 実行された Playbook

  • scm_revision: (文字列) このジョブに使用するプロジェクトからの SCM リビジョン (ある場合)

  • skip_tags: (文字列) 指定した場合には、このタグセットをスキップして Playbook を実行

  • start_at_task: (文字列) 指定した場合には、この名前に一致するタスクで Playbook の実行を開始

  • started: (日時) ジョブが開始のためにキューに入れられた日時

  • status: (選択肢) new、pending、waiting、running、successful、failed、error、canceled

  • timeout: (整数) タスクが取り消されるまでの実行時間 (秒数)

  • type: (選択肢) このジョブのデータタイプ

  • url: (文字列) ジョブの URL

  • use_fact_cache: (ブール値) ジョブに対して有効化されている場合には、Tower は Ansible ファクトキャッシュプラグインとして機能。データベースに対する Playbook 実行の終了時にファクトを保持し、Ansible で使用できるようにキャッシュ

  • verbosity: (選択肢) 0 - 5 (正常 - WinRM デバッグに対応)

  • host_status_counts (各ステータスに一意に割り当てられたホスト数)
    • skipped (整数)

    • ok (整数)

    • changed (整数)

    • failures (整数)

    • dark (整数)

  • playbook_counts:
    • play_count: (整数) 実行されたプレイの数

    • task_count: (整数) 実行されたタスクの数

  • summary_fields:
    • inventory
      • id: (整数) インベントリーのデータベース ID

      • name: (文字列) インベントリーの名前

      • description: (文字列) インベントリーの説明 (オプション)

      • has_active_failures: (ブール値) (非推奨) このインベントリーのホストが失敗したかどうかを示すフラグ

      • total_hosts: (非推奨) (整数) このインベントリー内のホストの合計数

      • hosts_with_active_failures: (非推奨) (整数) このインベントリー内のアクティブなエラーがあるホストの数

      • total_groups: (非推奨) (整数) このインベントリー内のグループの合計数

      • groups_with_active_failures: (非推奨) (整数) このインベントリー内のアクティブなエラーがあるホストの数

      • has_inventory_sources: (非推奨) (ブール値) このインベントリーに外部のインベントリーソースがあるかどうかを示すフラグ

      • total_inventory_sources: (整数) このインベントリー内で設定された外部インベントリーソースの合計数

      • inventory_sources_with_failures: (整数) このインベントリー内のエラーのある外部インベントリーソースの数

      • organization_id: (ID) このインベントリーを含む組織

      • kind: (選択肢) (空の文字列) (ホストにインベントリーとの直接リンクがあることを示す) または「smart」

    • project
      • id: (整数) プロジェクトのデータベース ID

      • name: (文字列) プロジェクトの名前

      • description: (文字列) プロジェクトの説明 (オプション)

      • status: (選択肢) new、pending、waiting、running、successful、failed、error、canceled、never updated、ok、missing のいずれか

      • scm_type (choice): (空の文字列)、git、hg、svn、insights のいずれか

    • project_update
      • id: (整数) プロジェクト更新用のデータベース ID

      • name: (文字列) プロジェクト更新の名前

      • description: (文字列) プロジェクト更新の説明 (オプション)

      • status: (選択肢) new、pending、waiting、running、successful、failed、error、または canceled のいずれか

      • failed: (ブール値) プロジェクトの更新が失敗したかどうかを示す

    • job_template
      • id: (整数) ジョブテンプレートのデータベース ID

      • name: (文字列) ジョブテンプレートの名前

      • description: (文字列) ジョブテンプレートの説明 (オプション)

    • unified_job_template
      • id: (整数) 統合ジョブテンプレートのデータベース ID

      • name: (文字列) 統合ジョブテンプレートの名前

      • description: (文字列) 統合ジョブテンプレートの説明 (オプション)

      • unified_job_type: (選択肢) 統合ジョブタイプ (job、workflow_job、project_update など)

    • instance_group
      • id: (整数) インスタンスグループのデータベース ID

      • name: (文字列) インスタンスグループの名前

    • created_by
      • id: (整数) ユーザーのデータベース ID

      • username: (文字列) ユーザー名

      • first_name: (文字列) 名

      • last_name: (文字列) 姓

    • labels
      • count: (整数) ラベルの数

      • results: ラベルを表す辞書のリスト ( {"id": 5, "name": "database jobs"} など)

    • source_workflow_job
      • id: (整数) ソースワークフロージョブのデータベース ID

      • name: (文字列) ソースワークフロージョブの名前

      • description: (文字列) ソースワークフロージョブの説明 (オプション)

      • elapsed: (10 進数) ソースワークフロージョブ実行の経過時間 (秒)

      • failed: (ブール値) ソースワークフロージョブが失敗したかどうかを示す

      • status: (選択肢) new、pending、waiting、running、successful、failed、error、canceled のいずれか

ジョブに関する情報は、中括弧 ({{ }}) を使用してグループ化した、カスタムの通知メッセージを使用して参照できます。特定のジョブ属性には、{{ job.summary_fields.inventory.name }} のようなドット表記法を使用してアクセスします。ジョブ ID には「#」、記述子の表記には1重引用符というように、括弧の前または前後に文字 (プレーンテキスト) を加えて、明確化することができます。カスタムメッセージでは、以下のように、メッセージ全体に複数の変数を含めることができます。

{{ job_friendly_name }} {{ job.id }} ran on {{ job.execution node }} in {{ job.elapsed }} seconds.

ジョブ属性に加えてテンプレートに追加できる変数は、他にも複数あります。

  • approval_node_name: (文字列) 承認ノード名

  • approval_status: (選択肢) approved、denied、timed_out のいずれか

  • url: (文字列) 通知が送信されるジョブの URL (開始、成功、失敗、承認の通知に適用)

  • workflow_url: (文字列) 関連する承認ノードへの URL。これにより、通知の受信者は、関連するワークフロージョブページに移動して、状況を把握することができます (This node can be viewed at: {{ workflow_url }})。承認関連の通知の場合には、urlworkflow_url はどちらも同じです。

  • job_friendly_name: (文字列) ジョブのフレンドリー名

  • job_metadata: (文字列) 以下のような、JSON 文字列としてのジョブメタデータ。

    {'url': 'https://towerhost/$/jobs/playbook/13',
     'traceback': '',
     'status': 'running',
     'started': '2019-08-07T21:46:38.362630+00:00',
     'project': 'Stub project',
     'playbook': 'ping.yml',
     'name': 'Stub Job Template',
     'limit': '',
     'inventory': 'Stub Inventory',
     'id': 42,
     'hosts': {},
     'friendly_name': 'Job',
     'finished': False,
     'credential': 'Stub credential',
     'created_by': 'admin'}