我在我的一些剧本中执行shell: docker ps ...
任务。这通常有效但有时docker守护程序会挂起,docker ps
不会返回~2小时。
如果docker ps
未返回,我如何在合理的时间内将Ansible配置为超时?
答案 0 :(得分:9)
Ansible中没有实现任务超时功能。
您可以尝试使用asynchronous call解决方法,但对于这种情况(显然是一种错误),依赖系统可能更容易也更合适。
请参阅GNU timeout
command(如果您运行Docker,操作系统上可能存在该命令):
shell: timeout 5m docker ps ...
答案 1 :(得分:0)
权衡一下,以防有人遇到它,在更高版本中添加了一个超时选项,该选项使您可以在WinRM实例的清单文件中指定以下变量:
ansible_winrm_operation_timeout_sec: 120
ansible_winrm_read_timeout_sec: 150
我的用例是一个docker swarm init
,它在Windows上很混乱,但在Linux上运行良好。它不能解决我的问题,但可能会解决您的问题,具体取决于您的交通工具。
我也注意到了https://github.com/ansible/ansible/pull/69284/files,但是我找不到任何地方可以解释。