有部署许多主机的剧本。
部署后,我需要将变量 ОNCE 的含义(运行一次local_action?!)发送到 REST 服务。
我怎样才能做到这一点?
由于剧本是幂等的,我想说最简单的方法是运行一个 bash 脚本:
- 检查一个文件,比如说/var/lock/foobar 是否存在
- 如果文件不存在,则在 Web 服务上执行调用
- Write/var/lock/foobar
因此,您的脚本是幂等的,可以多次调用,但只调用一次。
为什么不直接在部署手册的末尾添加一个任务?
- hosts: rest_service_target
tasks:
- name: Post to REST
local_action: command curl {{ url_of_rest_service_target }} {{ curl_arguments }}
可以添加一些错误处理,以便仅在部署成功时执行此操作,在部署失败时发送电子邮件等 http://docs.ansible.com/playbooks_error_handling.html