在Ansible杀死任务

时间:2016-03-23 14:37:40

标签: ansible

使用ansible杀死任务的最佳方法是什么?我有kafka作为常规可执行文件运行,而不是作为服务。当我向它发送一个杀戮时,需要一段时间来包装并关闭。在发送kill命令以确保服务实际停止之后,我希望ansible在继续之前等待。

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

---
- 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

由于

1 个答案:

答案 0 :(得分:5)

这可以通过wait_for模块来解决。

使用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模块提供了一些其他检查条件,请查看模块文档。