【问题标题】:Access ansible playbook results after run of playbook运行 playbook 后访问 ansible playbook 结果
【发布时间】:2015-11-19 08:04:42
【问题描述】:

我在我看不到的远程机器(客户端)上使用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  

如果没有,那么我将不得不编写自定义脚本来解析日志,将信息保存在机器上的某个数据库中并将其发送回我们的服务器。

【问题讨论】:

    标签: python automation ansible ansible-playbook


    【解决方案1】:

    AFAIK 没有变量可以从中获取这些数据。

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

    【讨论】:

    • 谢谢。使用这个 log_plays(github.com/ansible/ansible/blob/stable-1.9/plugins/callbacks/…) 。但是我只是简单地尝试在def playbook_on_stats(self, stats) 这个函数中记录 stats 变量。我的代码只有一行——log(host, 'STATISTICS' , stats )。想知道它根本没有被调用
    • 我当然可以使用其他正在工作的功能,但想知道为什么没有调用统计功能?
    猜你喜欢
    • 2013-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-19
    • 1970-01-01
    • 2023-02-25
    • 1970-01-01
    相关资源
    最近更新 更多