CD工具awx之通知NOTIFICATIONS,及时发送消息到企业微信机器人

本文主要是介绍CD工具awx之通知NOTIFICATIONS,及时发送消息到企业微信机器人,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、背景

awx的模板执行结果及时通知给相关人员,可以直接在awx界面上配置通知,然后由项目和模板来决定是否开启通知。
通知类型一般选择webhook,消息体的拼接,则需要参考awx官方文档。

除了在awx界面上配置通知外,也可以在playbook脚本中增加发送消息通知,调用python等脚本实现。

本文的消息通知以企业微信的机器人为示例,讲解其配置过程。至于钉钉机器人的对接过程类似,就不重复。

对接企业微信的机器人通知,报文示例见下:

curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=693axxx6-7aoc-4bc4-97a0-0ec2sifa5aaa' \-H 'Content-Type: application/json' \-d '{"msgtype": "text","text": {"content": "hello world"}}'

机器人地址见下截图:

在这里插入图片描述

至此,消息通知的准备工作就做好了,接下来在awx配置通知。

二、配置通知

在这里插入图片描述

1、拼接job开始、成功、错误的通知回调的入参

注意,json报文必须遵循企业微信的机器人回调报文格式。

{"msgtype": "text","text": {"content": "{{ job_friendly_name }}-{{ job.id }} \"{{ job.name }}\" is {{ job.status }}.  \nuser: {{job.summary_fields.created_by.username}}"}
}

在这里插入图片描述

你可以参考awx官方的webhook-payloads回调文档,定制出符合自己的消息模板。

这里摘要job实体下几个重要的字段,见下json报文:

{"id": 18,"name": "Project - Space Procedures","url": "https://towerhost/#/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 }}

在这里插入图片描述

2、开启模板“应用重启”的通知

在这里插入图片描述

这样,我们将会收到两个通知消息:任务开始的通知、任务运行成功或失败的通知。

三、运行模板

在这里插入图片描述

企业微信收到消息通知:

  • 作业运行成功
    在这里插入图片描述

  • 作业运行失败
    在这里插入图片描述

四、自定义的webhook回调

如果你发送的消息通知,不是直接对接企业微信,而是自定义接口。

只要在把企业微信的机器人修改你的接口地址即可。

在这里插入图片描述
job运行成功或失败的消息体示例:

{"created_by": "awx","name": "{{ job.name }}","status": "{{ job.status }}","started": "{{ job.started }}","finished": "{{ job.finished }}","env": "test"
}

在这里插入图片描述

关于awx如何实现回调通知,就梳理到这里了。

可以看到,消息体还是比较有限的,只能从awx官方文档里寻找。

如果你要更加灵活的消息通知,建议在playbook脚本里实现,可以读取到更多信息,比如程序的版本号。

版本号,对以应用为中心的程序部署来说,非常关键。

这篇关于CD工具awx之通知NOTIFICATIONS,及时发送消息到企业微信机器人的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1060530

相关文章

基于Go语言实现一个压测工具

《基于Go语言实现一个压测工具》这篇文章主要为大家详细介绍了基于Go语言实现一个简单的压测工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录整体架构通用数据处理模块Http请求响应数据处理Curl参数解析处理客户端模块Http客户端处理Grpc客户端处理Websocket客户端

java图像识别工具类(ImageRecognitionUtils)使用实例详解

《java图像识别工具类(ImageRecognitionUtils)使用实例详解》:本文主要介绍如何在Java中使用OpenCV进行图像识别,包括图像加载、预处理、分类、人脸检测和特征提取等步骤... 目录前言1. 图像识别的背景与作用2. 设计目标3. 项目依赖4. 设计与实现 ImageRecogni

Java中Springboot集成Kafka实现消息发送和接收功能

《Java中Springboot集成Kafka实现消息发送和接收功能》Kafka是一个高吞吐量的分布式发布-订阅消息系统,主要用于处理大规模数据流,它由生产者、消费者、主题、分区和代理等组件构成,Ka... 目录一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者一、Kaf

利用Python编写一个简单的聊天机器人

《利用Python编写一个简单的聊天机器人》这篇文章主要为大家详细介绍了如何利用Python编写一个简单的聊天机器人,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 使用 python 编写一个简单的聊天机器人可以从最基础的逻辑开始,然后逐步加入更复杂的功能。这里我们将先实现一个简单的

基于Python开发电脑定时关机工具

《基于Python开发电脑定时关机工具》这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 简介2. 运行效果3. 相关源码1. 简介这个程序就像一个“忠实的管家”,帮你按时关掉电脑,而且全程不需要你多做

Python手搓邮件发送客户端

《Python手搓邮件发送客户端》这篇文章主要为大家详细介绍了如何使用Python手搓邮件发送客户端,支持发送邮件,附件,定时发送以及个性化邮件正文,感兴趣的可以了解下... 目录1. 简介2.主要功能2.1.邮件发送功能2.2.个性签名功能2.3.定时发送功能2. 4.附件管理2.5.配置加载功能2.6.

基于C#实现PDF文件合并工具

《基于C#实现PDF文件合并工具》这篇文章主要为大家详细介绍了如何基于C#实现一个简单的PDF文件合并工具,文中的示例代码简洁易懂,有需要的小伙伴可以跟随小编一起学习一下... 界面主要用于发票PDF文件的合并。经常出差要报销的很有用。代码using System;using System.Col

redis-cli命令行工具的使用小结

《redis-cli命令行工具的使用小结》redis-cli是Redis的命令行客户端,支持多种参数用于连接、操作和管理Redis数据库,本文给大家介绍redis-cli命令行工具的使用小结,感兴趣的... 目录基本连接参数基本连接方式连接远程服务器带密码连接操作与格式参数-r参数重复执行命令-i参数指定命

解决Cron定时任务中Pytest脚本无法发送邮件的问题

《解决Cron定时任务中Pytest脚本无法发送邮件的问题》文章探讨解决在Cron定时任务中运行Pytest脚本时邮件发送失败的问题,先优化环境变量,再检查Pytest邮件配置,接着配置文件确保SMT... 目录引言1. 环境变量优化:确保Cron任务可以正确执行解决方案:1.1. 创建一个脚本1.2. 修

Python pyinstaller实现图形化打包工具

《Pythonpyinstaller实现图形化打包工具》:本文主要介绍一个使用PythonPYQT5制作的关于pyinstaller打包工具,代替传统的cmd黑窗口模式打包页面,实现更快捷方便的... 目录1.简介2.运行效果3.相关源码1.简介一个使用python PYQT5制作的关于pyinstall