ansible - ansible-playbook 计时器仅在某些节点上 10 秒后过期,但在其他节点上工作正常
问题描述
我能够 ping 所有服务器,但是当我在所有节点上运行 playbook 时,它只能在某些节点上运行,而在其他节点上我得到
TimeoutError:计时器在 10 秒后过期
它工作正常。它发生在过去 1 周。
wrt playbook 或 ansible cfg 文件没有任何改变。
The full traceback is:
Traceback (most recent call last):
File "/tmp/ansible_Kh_sLm/ansible_modlib.zip/ansible/module_utils/basic.py", line 2853, in run_command
cmd = subprocess.Popen(args, **kwargs)
File "/usr/lib64/python2.7/subprocess.py", line 711, in __init__
errread, errwrite)
File "/usr/lib64/python2.7/subprocess.py", line 1308, in _execute_child
data = _eintr_retry_call(os.read, errpipe_read, 1048576)
File "/usr/lib64/python2.7/subprocess.py", line 478, in _eintr_retry_call
return func(*args)
File "/tmp/ansible_Kh_sLm/ansible_modlib.zip/ansible/module_utils/facts/timeout.py", line 37, in _handle_timeout
raise TimeoutError(msg)
TimeoutError: Timer expired after 10 seconds
fatal: [hostname]: FAILED! => {
"changed": false,
"cmd": "/bin/findmnt --list --noheadings --notruncate",
"invocation": {
"module_args": {
"fact_path": "/etc/ansible/facts.d",
"filter": "*",
"gather_subset": [
"all"
],
"gather_timeout": 10
}
},
"msg": "Timer expired after 10 seconds",
"rc": 257
}
解决方案
这种解决方法帮助了我。在 /etc/ansible/ansible.cfg 我设置了gather_subset = !all 基本上只收集最少的事实。我认为在收集事实时有些事情搞砸了。因此,根据您的要求设置值以仅收集您需要的那些事实。
推荐阅读
- python - Django模型继承架构的正确实现?
- terraform - 如何在 Terraform 中初始化列表?
- php - 扫描我的网络服务器中的目录并列出其所有图像
- r - 如何绘制比较正态分布和二项分布 R 的图?
- google-cloud-platform - 谷歌云语音 API 命令
- node.js - 如何在子窗口上启用 nodeIntegration
- c# - 如何使用 RavenDB 按构面进行搜索
- java - 监控程序背后的逻辑
- python - math.isclose() 的类型检查
- angular - 如何使用 HttpParams 将 POST 请求中的数据作为查询字符串参数以角度形式传递