终止Ansible中的任务



用ansible终止任务的最佳方法是什么?我让kafka作为常规可执行文件运行,而不是作为服务运行。当我向它发送一个击杀时,它需要一段时间才能完成并关闭。我希望ansible在发送kill命令后等待,以确保服务实际上已经停止。

到目前为止,这就是我所拥有的,我不确定如何可靠地做到这一点。

---
- name: Stopping Kafka
  command: "bin/kafka-server-stop.sh config/server.properties"
  args:
    chdir: "{{base_apps}}/kafka/kafka_2.11-0.9.0.1" 
  ignore_errors: yes

感谢

这可能可以通过wait_fo模块来解决。

使用wait_for模块,可以执行以下操作:

---
- name: Stopping Kafka
  command: "bin/kafka-server-stop.sh config/server.properties"
  args:
   chdir: "{{base_apps}}/kafka/kafka_2.11-0.9.0.1" 
  ignore_errors: yes
# wait until the lock file is removed
- wait_for: path=/var/lock/kafka.lock state=absent

这样,只有在锁定文件被删除后,Ansible才会继续播放。wait_for模块提供了一些其他需要检查的条件,请查看模块文档。

最新更新