【问题标题】:ansible is blocked waiting for unresponsive services using service moduleansible 被阻止使用服务模块等待无响应的服务
【发布时间】:2015-06-26 22:08:58
【问题描述】:

我有以下剧本, 我进行了测试,所有任务都运行良好,除非 ansible 试图停止主机中无响应的服务。它一直等待很长时间,并且从未得到服务器的响应(没有超时,没有失败,没有任何东西)。

在这种情况下,异步和轮询或“触发并忘记”方法对我没有用,我尝试先停止,然后再执行 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"

你知道我该如何解决它吗? 提前致谢。

【问题讨论】:

    标签: asynchronous service state ansible ansible-playbook


    【解决方案1】:

    我解决了。 我在下一个任务中使用了异步方法和命令:sleep 300。所以剧本等待 300 秒,如果没有停止,那么剧本继续并使用 kill -9。 临时解决方案,但正在工作。

    【讨论】:

    • 这是您自己编写的服务吗?您是否考虑过在服务的 init 脚本的 stop 部分中将 wait 和 kill -9 放在一起?这样可以将 Ansible 中的这些杂乱无章的东西放在一个更好的地方。
    • 感谢您的回答,不,不是我写的。问题是 playbook 遇到了 jumphost 并从这个服务器到达服务器,我应该修改很多服务器来做到这一点。
    猜你喜欢
    • 2017-03-31
    • 2013-10-25
    • 1970-01-01
    • 2017-06-28
    • 2012-04-09
    • 1970-01-01
    • 2014-07-15
    • 2020-03-06
    • 1970-01-01
    相关资源
    最近更新 更多