2017-03-18 268 views
0

这是在转到EC2 Ubuntu实例(客户端)的Ubuntu 16.10 Linux VM(主机)上。Ansible命令失败,'无法通过ssh连接到主机',但在做'ansible all -m ping'后成功 - 为什么?

我做这个命令:

sudo ansible-playbook deploy.yml -vvv 

并获得:

fatal: [web1]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh.", "unreachable": true} 

然而,如果我这样做,马上(秒)之后:

ansible all -m ping 

上述命令的作品!

是不是与ControlPersist=60s有关,就像没有更多的命令可以发出?混乱。

+1

为什么你不使用'sudo'而使用'sudo ansible-playbook'和'ansible'?这可以根据您的设置使用不同的凭据。 –

+0

奇怪。当我做'sudo ansible all -m ping'时,它最初有SSH错误,但是如果我使用'ansible all -m ping'关闭它,完全相同的命令在几秒钟后开始工作。彻底奇怪。 –

+0

你知道什么是'sudo'吗? –

回答

0

看起来像这可能是一个已知的Ansible错误,其中SSH连接间歇性地失败,并给出一个糟糕的错误消息。我在Ansible 2.1.1,相同的版本,所以很多人这个bug报告上太:

https://github.com/ansible/ansible/issues/15706

所以升级Ansible可能会解决该错误得到。或者使用我发现的pinging ansible <your hosts> -m ping的解决方法。