使用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
Run Code Online (Sandbox Code Playgroud)
谢谢
这可以通过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
Run Code Online (Sandbox Code Playgroud)
这样Ansible将在锁定文件被删除后继续播放.wait_for模块提供了一些其他检查条件,请查看模块文档.