在一次运行所有任务时,Ansible在运行任务之间断开了SSH会话,该任务花了26个小时才完成,但在6小时执行后ansible断开了SSH会话。目标服务器SSH配置以使会话保持如下:
var freshRates = [1.6,1.7,2.0]
var oldRates = [1.5,1.4,1.9]
var difference: [Double] = zip(freshRates, oldRates).map({ $0.0 - $0.1 })
Ansible任务:
ClientAliveInterval 172000
ClientAliveCountMax 10
找到下面的错误日志:
- name: Executing script
remote_user: "{{admin_user}}"
become: yes
shell: sudo -u test bash ./customscript.sh > /log_dir/customscript.log 2>&1
args:
chdir: "deployment_source/common"
tags:
- custom-test
请告知,断开连接的问题是什么?怎么解决呢?
答案 0 :(得分:2)
你永远不应该期望网络连接能够长时间保持稳定。
Ansible中有async机制可以处理长时间运行的工作。
将您的代码重构为:
- name: Executing script
remote_user: "{{admin_user}}"
become: yes
shell: sudo -u test bash ./customscript.sh > /log_dir/customscript.log 2>&1
args:
chdir: "deployment_source/common"
async: 180000
poll: 60
tags:
- custom-test
允许您的任务执行多达50小时,并且每60秒检查一次完成。