我在远程机器(客户端)上使用 ansible-pull
运行一个ansible脚本,这是我看不到的 .
我想确保:
-
ansible playbook成功执行然后应发送摘要
-
ansible playbook如果没有成功执行,应该发送失败的摘要
启用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
如果没有,那么我将编写自定义脚本来解析日志,将信息保存在机器上的某个数据库中并将其发送回我们的服务器 .
1 回答
AFAIK没有可以从中获取此数据的变量 .
但这会让人感到尖叫 . 看一下插件log_plays . 它编写自己的日志文件 . 您可以拦截所有消息,收集它们并在最后(在您的插件中定义一个方法
def playbook_on_stats(self, stats):
)随心所欲地执行它 . 还有mail plugin将发送有关失败任务的电子邮件 .