Ansible:with_items中的wait_for

时间:2015-02-18 20:43:58

标签: ansible

我有一组Web服务器进程,我希望一次重启一个。我想等待进程N准备好在重新启动进程N + 1之前为HTTP请求提供服务

以下作品:

- name: restart server 9990
  supervisorctl: name='server_9990' state=restarted 
- wait_for: port=9990 delay=1

- name: restart server 9991
  supervisorctl: name='server_9991' state=restarted 
- wait_for: port=9991 delay=1

但我真的很想在循环中这样做。似乎Ansible不允许循环内的多个任务(在这种情况下,我需要两个任务:supervisorctl和wait_for)

我是否错过了这样做的方法,或者是为服务器的每个实例复制这些任务真的要走了吗?

1 个答案:

答案 0 :(得分:0)

我认为使用Ansible默认功能是不可能的。我认为你最好的选择是创建your own module。我已经看到模块可以调用其他模块,因此您可以使用一个简单的模块,只需调用supervisorctl模块,然后等待端口准备就绪。然后可以使用with_items调用此模块。

另一个想法是首先不要使用supervisorctl。您可以运行shellscript任务,然后手动调用supervisorctl并等待端口打开。