我怎么能运行一次任务?

时间:2013-12-25 19:50:20

标签: deployment newrelic ansible

有用于部署许多主机的playbook。

我需要在部署后将变量ОNCE(运行local_action一次?!)的含义发送到REST服务。

我该如何做到这一点?

2 个答案:

答案 0 :(得分:0)

由于剧本是幂等的,我想说最简单的方法是运行一个bash脚本:

  • 检查文件是否存在,假设/ var / lock / foobar存在
  • 如果文件不存在,则在WebService上执行调用
  • 写/ var / lock / foobar

所以你的脚本是幂等的,并且可以被调用很多次,但只能调用一次。

答案 1 :(得分:0)

为什么不将任务添加到部署playbook的末尾?

-  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