我有以下剧本, 我测试了所有任务都正常工作,除非ansible试图阻止主机中的无响应服务。它长时间不停地晕厥,从来没有得到服务器的响应(没有超时,没有失败,没有任何东西)。
在这种情况下对我的async和poll或“fire and forget”方法没有用,我先尝试先做Stop,然后再做kill -9。
- hosts: '{{ hostname }}'
become: yes
vars_prompt:
hostname: "Enter hostname"
tasks:
- name: Stop
service: name=some_service state=stopped pattern=some_pattern
register: stop_disabled_services
ignore_errors: yes
- name: Stop output
debug: msg="{{ stop_disabled_services }}"
- name: Killing process
shell: kill -9 $(cat /opt/day/cq5/publish/crx-quickstart/conf/cq.pid)
register: output
when: "stop_disabled_services | failed"
- name: Killing output
debug: msg="{{ output.stdout }}"
when: "output | failed"
- name: start
service: name=some_service state=started
register: start_disabled_services
- name: Result
debug: msg="WARNING Escalated this incident "
when: "start_disabled_services | failed"
- name: Result
debug: msg="Start up complete successfully"
when: "start_disabled_services | success"
你知道我怎么能捣蛋呢? 提前谢谢。
答案 0 :(得分:0)
我解决了。 我使用了异步方法和命令:在下一个任务中睡眠300。所以剧本等待300秒,如果没有停止,那么剧本继续并使用kill -9。 Teporal解决方案,但正在发挥作用。