Ansible任务超时最大长度

use*_*007 4 ansible docker

shell: docker ps ...在我的一些剧本中执行任务.这通常有效但有时docker守护进程挂起并且docker ps不会返回~2小时.

如果docker ps不返回,如何在合理的时间内将Ansible配置为超时?

Vij*_*esh 29

2.10版本中添加了A task timeout(以秒为单位),这在此类场景中很有用。

例如,以下剧本在2.10版本中失败:

---
- hosts: localhost
  connection: local
  gather_facts: false
  tasks:
  - shell: |
      while true; do
        sleep 1
      done
    timeout: 5
...
Run Code Online (Sandbox Code Playgroud)

带有如下错误消息:

TASK [shell] **************************************************************************************************************************
fatal: [localhost]: FAILED! => {"changed": false, "msg": "The shell action failed to execute in the expected time frame (5) and was terminated"}
Run Code Online (Sandbox Code Playgroud)

  • 超时的单位是什么?秒?分钟?关键字链接未指定。 (3认同)

tec*_*raf 9

Ansible中没有实现任务超时功能.

您可以尝试使用异步调用的解决方法,但对于这种情况(显然是一种错误)依赖于系统可能更容易,更合适.

请参阅GNU timeout命令(如果您运行Docker,则可能是您的操作系统上存在命令):

shell: timeout 5m docker ps ...
Run Code Online (Sandbox Code Playgroud)