运行攻略后访问可能的攻略结果

问题描述

我使用ansible-pull在我看不到的远程计算机(客户端)上运行Ansible脚本。

我想确保:

  • 可修改的剧本执行成功,则应发送摘要
  • 可分析的行动手册如果执行不成功,应发送失败内容的摘要
启用Ansible日志将信息存储在一些日志文件中,但我想知道是否可以通过Ansible中预定义的一些变量获得以下Ansible输出的结果。

PLAY [localhost] ************************************************************** 

GATHERING FACTS *************************************************************** 
ok: [localhost]

TASK: [Install the hello package] ********************************************* 
ok: [localhost] => {"changed": false}

TASK: [Install the cmatrix package] ******************************************* 
ok: [localhost] => {"changed": false}

PLAY RECAP ******************************************************************** 
localhost                  : ok=3    changed=0    unreachable=0    failed=0  
如果没有,那么我将不得不编写自定义脚本来解析日志,将信息保存在机器上的某个数据库中,然后将其发送回我们的服务器。


解决方案

AFAIK没有可以从中获取此数据的变量。

但这需要callback plugin。请看一下插件log_plays。它会写入自己的日志文件。您可以截取所有消息,收集它们,最后(在插件中定义一个方法def playbook_on_stats(self, stats):)随心所欲地处理它。还有mail plugin,它将发送有关失败任务的电子邮件。

相关文章