文档

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

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

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

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

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

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

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

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

  • elapsed - (十进制) 作业运行的秒数

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

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

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

  • force_handlers - (布尔值) 当强制处理程序时,即使在该主机上通知时任务失败,它们也会运行(注意,某些条件 - 例如无法访问的主机 - 仍然可以阻止处理程序运行)

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

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

  • job_explanation - (字符串) 状态字段,用于指示作业的状态(如果作业无法运行并捕获标准输出)

  • 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 - (布尔值) 如果为作业启用,则 Tower 充当 Ansible Fact Cache 插件,在剧本运行结束时将事实持久化到数据库并缓存事实供 Ansible 使用

  • verbosity - (选择) 0 到 5(对应于正常到 WinRM 调试)

  • 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 - (选择) 新建、待处理、等待、运行、成功、失败、错误、已取消、从未更新、正常或丢失

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

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

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

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

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

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

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

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

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

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

    • created_by
      • 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 - (选择) 审批状态之一:已批准、拒绝、超时

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