25.5. 创建自定义通知


您可以在通知表单上 自定义每个 通知类型 的文本内容

流程

  1. 在导航面板中,选择 Automation Execution Administration Notifiers
  2. Create notifier
  3. Type 列表中选择通知类型。
  4. 使用切换启用 自定义消息

    自定义通知
  5. 您可以为各种作业事件提供自定义消息,如下所示:

    • 启动消息正文
    • 成功消息正文
    • 错误消息正文
    • 工作流已批准的正文
    • 工作流拒绝消息正文
    • 工作流待处理消息正文
    • 工作流超时消息正文

消息表单因您要配置的通知类型而异。例如,电子邮件和 PagerDuty 通知的消息显示为典型的电子邮件,其中包含正文和主题,在这种情况下,自动化控制器会将字段显示为 MessageMessage Body。其他通知类型仅针对每种事件要求 消息

Message 字段预先填充一个模板,其中包含顶层变量,并与属性合并,如 idname模板用大括号括起,可以从自动化控制器提供的固定字段集合中提取,如预先填充的消息字段所示:

这个预先填充的字段建议通常向接收事件通知的接收者显示信息。您可以根据需要为作业添加自己的属性来自定义这些消息。自定义通知消息使用 Jinja 呈现;Ansible playbook 使用的同一模板引擎。

消息和消息正文具有不同的内容类型,如下所示:

  • 信息始终只是字符串,仅一行。不支持新行。
  • 消息正文可以是字典或文本块:

    • Webhooks 和 PagerDuty 的消息正文使用字典定义。这些的默认消息正文是 {{ job_metadata }},您可以保留原样的值,或者提供自己的字典。
    • 电子邮件的消息正文使用文本块或多行字符串。默认消息正文为:

      {{ job_friendly_name }} #{{ job.id }} had status {{ job.status }}, view details at {{ url }} {{ job_metadata }}

      您可以编辑此文本,使 {{ job_metadata }} 留在,或者丢弃 {{ job_metadata }}。由于正文是文本块,它可以是您想要的任何字符串。{{ job_metadata }} 呈现为包含描述正在执行作业的字段的字典。在所有情况下,{{ job_metadata }} 包括以下字段:

      • id
      • name
      • url
      • created_by
      • started
      • finished
      • status
      • 追溯

        注意

        您无法查询 {{ job_metadata }} 中的各个字段。当您在通知模板中使用 {{ job_metadata }} 时,所有数据都会被返回。

        生成的字典类似如下:

        {"id": 18,
         "name": "Project - Space Procedures",
         "url": "https://host/#/jobs/project/18",
         "created_by": "admin",
         "started": "2019-10-26T00:20:45.139356+00:00",
         "finished": "2019-10-26T00:20:55.769713+00:00",
         "status": "successful",
         "traceback": ""
        }

        如果 {{ job_metadata }} 在作业中呈现,它将包括以下附加字段:

      • 清单(inventory)
      • project
      • playbook
      • credential
      • limit
      • extra_vars
      • 主机

        生成的字典类似如下:

        {"id": 12,
         "name": "JobTemplate - Launch Rockets",
         "url": "https://host/#/jobs/playbook/12",
         "created_by": "admin",
         "started": "2019-10-26T00:02:07.943774+00:00",
         "finished": null,
         "status": "running",
         "traceback": "",
         "inventory": "Inventory - Fleet",
         "project": "Project - Space Procedures",
         "playbook": "launch.yml",
         "credential": "Credential - Mission Control",
         "limit": "",
         "extra_vars": "{}",
         "hosts": {}
        }

        如果 {{ job_metadata }} 在工作流作业中呈现,它将包括以下附加字段:

      • body (此枚举工作流作业中的节点,并包含与每个节点关联的作业描述)

        生成的字典类似如下:

        {"id": 14,
         "name": "Workflow Job Template - Launch Mars Mission",
         "url": "https://host/#/workflows/14",
         "created_by": "admin",
         "started": "2019-10-26T00:11:04.554468+00:00",
         "finished": "2019-10-26T00:11:24.249899+00:00",
         "status": "successful",
         "traceback": "",
         "body": "Workflow job summary:
        
                 node #1 spawns job #15, \"Assemble Fleet JT\", which finished with status successful.
                 node #2 spawns job #16, \"Mission Start approval node\", which finished with status successful.\n
                 node #3 spawns job #17, \"Deploy Fleet\", which finished with status successful."
        }

如果您创建使用无效语法或引用不可用字段的通知模板,则会显示一条错误消息,指出错误的性质。如果您删除通知的自定义消息,则会在其位置显示默认消息。

重要

如果您在不编辑自定义消息(或编辑并恢复到默认值)的情况下保存通知模板,Details 屏幕会假定默认值,且不会显示自定义消息表。如果您编辑并保存任何值,则整个表会显示在 Details 屏幕中。

其他资源

  • 如需更多信息,请参阅 Ansible 文档中的 使用带有 Jinja2 的变量
  • 自动化控制器需要有效的语法来检索正确的数据来显示消息。

有关支持的属性和正确的语法构建列表,请参阅 自定义通知部分支持的属性

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.