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

本节描述了支持的作业属性列表以及构建通知消息文本的正确语法。支持的作业属性包括:

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

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

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

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

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

  • diff_mode - (布尔值) 如果启用,则在标准输出中显示对主机上任何模板化文件所做的文本更改。

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

  • execution_node - (字符串) 作业在其上执行的节点。

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

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

  • force_handlers - (布尔值) 当强制使用处理程序时,即使任务在该主机上失败,它们也会在收到通知时运行(请注意,某些条件 - 例如不可达主机 - 仍可能阻止处理程序运行)。

  • forks - (整数) 为作业请求的分叉数。

  • id - (整数) 此作业的数据库 ID。

  • job_explanation - (字符串) 状态字段,用于指示作业无法运行并捕获 stdout 的状态。

  • job_slice_count - (整数) 如果作为切片作业的一部分运行,则切片的总数(如果为 1,则作业不是切片作业的一部分)。

  • job_slice_number - (整数) 如果作为切片作业的一部分运行,则正在对其进行操作的清单切片的 ID(如果不是切片作业的一部分,则不使用属性)。

  • job_tags - (字符串) 仅执行具有指定标签的任务。

  • job_type - (选择) 运行、检查或扫描。

  • launch_type - (选择) 手动、重新启动、回调、计划、依赖项、工作流、同步或 scm。

  • limit - (字符串) 如果指定,则将剧本执行限制在此主机集。

  • modified - (日期时间) 最后修改此作业的时间戳。

  • name - (字符串) 此作业的名称。

  • playbook - (字符串) 执行的剧本。

  • scm_revision - (字符串) 如果可用,则来自用于此作业的项目的 scm 修订版。

  • skip_tags - (字符串) 如果指定,则剧本执行将跳过此标签集。

  • start_at_task - (字符串) 如果指定,则剧本执行将从与该名称匹配的任务开始。

  • started - (日期时间) 作业排队开始的日期和时间。

  • status - (选择) 新建、待处理、等待、运行、成功、失败、错误、已取消。

  • timeout - (整数) 在任务被取消之前运行的时间量(以秒为单位)。

  • type - (选择) 此作业的数据类型。

  • url - (字符串) 此作业的 URL。

  • use_fact_cache - (布尔值) 如果为作业启用,则 AWX 充当 Ansible Fact 缓存插件,在剧本运行结束时将事实持久化到数据库中,并缓存事实以供 Ansible 使用。

  • verbosity - (选择) 0 到 5(对应于普通到 WinRM 调试)。

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

    • ok (整数)

    • changed (整数)

    • failures (整数)

    • dark (整数)

    • processed (整数)

    • rescued (整数)

    • ignored (整数)

    • failed (布尔值)

  • 摘要字段:
    • 清单
      • 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 - (选择) (空字符串)(指示主机与清单具有直接链接)或“智能”。

    • 项目
      • id - (整数) 项目的数据库 ID。

      • name - (字符串) 项目的名称。

      • description - (字符串) 项目的可选描述。

      • status - (选择) 新建、待处理、等待、运行、成功、失败、错误、已取消、从未更新、正常或丢失之一。

      • scm_type (choice) - (空字符串)、git、hg、svn、insights 之一。

    • 作业模板
      • id - (整数) 作业模板的数据库 ID。

      • name - (字符串) 作业模板的名称。

      • description - (字符串) 作业模板的可选描述。

    • 统一作业模板
      • id - (整数) 统一作业模板的数据库 ID。

      • name - (字符串) 统一作业模板的名称。

      • description - (字符串) 统一作业模板的可选描述。

      • unified_job_type - (选择) 统一作业类型(作业、工作流作业、项目更新等)。

    • 实例组
      • id - (整数) 实例组的数据库 ID。

      • name - (字符串) 实例组的名称。

    • 创建者
      • id - (整数) 启动操作的用户数据库 ID。

      • username - (字符串) 启动操作的用户名。

      • first_name - (字符串) 姓。

      • last_name - (字符串) 名。

    • 标签
      • count - (整数) 标签数量。

      • results - 表示标签的字典列表(例如:{“id”: 5, “name”: “数据库作业”})。

有关作业的信息可以通过在自定义通知消息中使用分组花括号 {{ }} 来引用。可以使用点表示法访问特定的作业属性,例如 {{ 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://awxhost/$/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'}