运行Ansible剧本后如何获取结果
我在一台远程机器上运行一个 ansible 脚本,使用的是 ansible-pull
,但我看不到这台机器。
我想确保:
- 如果 ansible 的操作成功执行了,就应该发送一个总结
- 如果 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
如果不行的话,我就得写一些自定义脚本来解析日志,把信息保存到机器上的某个数据库里,然后再把它发送回我们的服务器。
相关文章:
- 暂无相关问题
1 个回答
7
据我所知,没有一个变量可以直接获取这些数据。
不过,这个情况很适合用到回调插件。你可以看看这个插件community.general/plugins/callback/log_plays.py
。它会自己写日志文件。你可以拦截所有的信息,收集起来,然后在最后(在你的插件里定义一个方法def playbook_on_stats(self, stats):
)随便处理这些信息。还有一个community.general/plugins/callback/mail.py
插件,它会在任务失败时发送邮件。