Documentation

11. 支持的自定义通知属性

本节介绍支持的作业属性列表以及构建通知消息文本的正确语法。支持的作业属性有:

  • allow_simultaneous - (布尔值)表示多个作业是否可以同时从与此作业关联的 JT 运行

  • controller_node - (字符串)管理隔离执行环境的实例

  • created - (日期时间)创建此作业时的时间戳

  • custom_virtualenv - (字符串)用于执行作业的自定义虚拟环境

  • description - (字符串)此作业的可选描述

  • diff_mode - (布尔值)如果启用,标准输出中会显示对主机上任何模板文件进行的文本更改

  • elapsed - (十进制)作业运行所经过的时间(以秒为单位)

  • execution_node - (字符串)执行作业的节点

  • failed - (布尔值)如果作业失败,则为 true

  • finished - (日期时间)作业完成执行的日期和时间

  • force_handlers - (布尔值)当处理程序被强制运行时,即使在该主机上的作业失败,它们也会在收到通知时运行(请注意,在一些情况下,如不可访问的主机,仍然可以阻止处理程序运行)

  • forks - (整数)作业请求的 fork 数量

  • 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(与 Normal 到 WinRM Debug 级别相对应)

  • ``host_status_counts``(分配给每个状态的唯一主机数量)
    • ``skipped``(整数)

    • ``ok``(整数)

    • ``changed``(整数)

    • ``failures``(整数)

    • ``dark``(整数)

    • ``processed``(整数)

    • ``rescued``(整数)

    • ``ignored``(整数)

    • ``failed``(布尔值)

  • 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

    • 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"})

可在自定义通知消息中使用分组的大括号 {{ }} 来引用有关任务的信息。特定任务属性可以使用点式标记(例如 {{ job.summary_fields.inventory.name }})来访问。任何用在大括号前或周围的字符,或纯文本均可添加用于说明,如“#”用于任务 ID,单引号用于表示某些描述符。自定义消息可在整个消息中包括多个变量:

{{ 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'}