第 10 章 自定义通知支持的属性
本节介绍支持的作业属性列表,以及构建通知消息文本的正确语法。支持的作业属性有:
-
allow_simultaneous
- (布尔值)表示多个作业是否可以从与此作业关联的 JT 同时运行 -
controller_node
- (字符串)管理隔离执行环境的实例 -
created
- (日期时间)这个作业创建时的时间戳 -
custom_virtualenv
- (字符串)用于执行作业的自定义虚拟环境 -
description
- (字符串)该作业的可选描述 -
diff_mode
- (布尔值)如果启用,标准输出中会显示对主机上任何模板文件进行的文本更改 -
elapsed
- (十进制)作业运行所经过的时间(以秒为单位) -
execution_node
- (字符串)执行作业的节点 -
failed
- (布尔值)如果作业失败,则为 true -
finished
- (日期时间)作业完成执行的日期和时间 -
force_handlers
- (布尔值)当处理程序被强制运行时,即使在该主机上的作业失败,它们也会在收到通知时运行(请注意,在一些情况下,如不可访问的主机,仍然可以阻止处理程序运行) -
fork
- (整数)作业请求的 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
- 其中一个(空字符串)、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.
{{ job_friendly_name }} {{ job.id }} ran on {{ job.execution_node }} in {{ job.elapsed }} seconds.
除了作业属性外,其他一些变量还可添加到模板中:
approval_node_name
- (字符串)批准节点名称
approval_status
- (选择)批准、被拒绝和 timed_out 之一
url
- (字符串)发出通知的作业 URL(这适用于启动、成功、失败和批准通知)
workflow_url
- (字符串)指向相关批准节点的 URL。这可让通知接收者进入相关的工作流作业页面来查看具体情况(例如,此节点可在以下位置查看:{{ workflow_url }})。在与批准相关的通知中,url 和 workflow_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'}
{'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'}