Ansible SSH错误

时间:2015-11-15 16:37:49

标签: ssh ansible

我在ubuntu 14.04上的ansible 1.9.4中遇到了一个奇怪的ssh相关错误。

在我的库存文件中,我在组中定义了几个服务器:

[group1]
g1-server1
g1-server2

[group2]
g2-server1
g2-server2
....
[dev]
g1-server1 .... 
g2-server1 ...
etc.....

现在所有服务器都指向localhost进行测试。我还为每个服务器分配了几个变量。

我可以按任务(使用标签)运行playbook任务,有时相同的任务有效,有时它不会。如果我运行整个剧本,它将在随机位置停止并出现此错误:

fatal: [hostname] => SSH Error: Shared connection to 127.0.0.1 closed.
It is sometimes useful to re-run the command using -vvvv, which prints    
SSH debug output to help diagnose the issue.

我怀疑从localhost到localhost可能同时存在许多ssh连接的问题,但我不知道如何确认这一点。此外,如果将任务标记为run_once:true,我在任务上取得了更大的成功。

有没有人对此有任何想法?

注意:我试图在这上找到关于互联网的一些资源;有几个与服务器重启有关的讨论。但请记住,我没有在这里重新启动任何东西。

2 个答案:

答案 0 :(得分:2)

如果我找到了你,你就会打开多个连接来做同样的事情(例如更改相同的文件)。这当然会导致不可预测的结果。

尽管在这种测试中我没有看到任何意义,但您可以消除错误设置

serial: 1
在您的剧本中

,请参阅:http://docs.ansible.com/ansible/playbooks_delegation.html#rolling-update-batch-size

将导致任务一个接一个地运行

答案 1 :(得分:1)

我有一个类似的问题和序列:1不是我的选择。我更新了ansible.cfg并设置了属性 [ssh_connection] ssh_args = -o ControlMaster=no -o ControlPersist=60s

主要将ControlMaster设置为no。这使我的剧本更稳定。