从PHP运行ansible playbook,并在完成后收到通知

时间:2018-04-08 18:59:38

标签: php ansible

我想在PHP页面上使用ansible playbook在远程服务器上运行脚本。 有没有办法在远程脚本(ansible paybook)完成时收到通知。 我想用一个任务从远程服务器在我的数据库中插入一行,但我不认为这是可能的。

最好的方法是:

  1. 从php调用ansible playbook来运行远程脚本
  2. 获取Stdout,Sterr和远程脚本的输出
  3. 脚本完成后收到通知,以便我可以在我的php页面上显示输出。

2 个答案:

答案 0 :(得分:1)

您可以使用callback plugins

例如,在您的ansible.cfg中,您可以拥有类似

的内容
[defaults]
callback_whitelist = timer, stderr, mail

这意味着它将使用插件timerstderrmail

  • 计时器 - 增加播放统计资料的时间
  • stderr - 拆分输出,将失败的任务发送到stderr
  • mail - 通过电子邮件发送失败事件

点击此处查看现有插件列表:callback.html#plugin-list,或使用:

ansible-doc -t callback -l

如果现有插件不够,您可以随时创建自己的插件:developing_plugins

答案 1 :(得分:1)

您应该使用排队系统。喜欢:https://github.com/queue-interop/queue-interop

您将作业放入队列,当剧本完成后,您将结果写入数据库。