在Ansible杀死任务

bro*_*kie 1 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
Run Code Online (Sandbox Code Playgroud)

谢谢

Hen*_*ica 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
Run Code Online (Sandbox Code Playgroud)

这样Ansible将在锁定文件被删除后继续播放.wait_for模块提供了一些其他检查条件,请查看模块文档.