如果问题不明确和/或我不问我应该在哪里,请提前抱歉。
我在通过SSH连接到带有ansible的主机时遇到问题。它几天前工作,但我已经有几天相同的消息错误:
camille@ubuntu:~$ ansible all -m ping -u remote
192.168.15.129 | UNREACHABLE! => {
"changed": false,
"msg": "Failed to connect to the host via ssh: Connection timed out during banner exchange\r\n",
"unreachable": true
}
SSH连接(没有ansible),工作得很好,所以我真的不明白这个问题。我在Ubuntu 16.04 VM上运行Ansible,我想要访问的主机是CentOS 7 VM。
我的主机文件如下:
[test]
192.168.15.29 ansible_ssh_user=remote ansible_ssh_pass=password ansible_sudo_pass='password' #VM CentOS
我尝试了解释here的解决方案,但它没有解决问题。
编辑1:在尝试Ripper Tops解决方案并测试其他一些内容后,我的广告资源现在看起来像这样:
[test]
192.168.15.129 ansible_connection=ssh ansible_user=remote ansible_password='password'
[test:vars]
proxy=my_proxy:8080
我也尝试将超时增加到25,我仍然有同样的问题。
编辑2 :
更改我的ansible.cfg文件后,错误消息已更改:
192.168.15.129 | UNREACHABLE! => {
"changed": false,
"msg": "SSH Error: data could not be sent to remote host \"192.168.15.129\". Make sure this host can be reached over ssh",
"unreachable": true }
我再次测试ssh连接,它仍然运行良好。
我的配置文件现在是:
[defaults]
timeout = 25
host_key_checking = False
roles_path = roles/
gathering = smart
[ssh_connection]
ssh_args = -o
ControlMaster=auto -o
ControlPersist=600s
control_path = %(directory)s/%%h-%%r
pipelining = True
你对此有什么线索吗?
答案 0 :(得分:1)
尝试使用ansible_user
代替ansible_ssh_user
和ansible_password
代替ansible_ssh_pass
。这取决于您的ansible
版本。
另外,您可能需要在[group:vars]
部分后面的[group]
放置清单文件。
有简单的方法来检查差异
ansible 192.168.15.29 -i your_hosts_file -m ping -e“ansible_ssh_user = remote ansible_ssh_pass = password”
或
ansible 192.168.15.29 -i your_hosts_file -m ping -e“ansible_user = remote ansible_password = password”
答案 1 :(得分:0)
我终于解决了我的问题! :d - 我应用Ripper Tops的建议(再次感谢):更改ansible.cfg(参见第1条消息) - 我将主机文件更改为以下内容:
[test]
192.168.15.129 ansible_user=remote ansible_password=remote_password ansible_ssh_user=remote ansible_ssh_pass=remote_password
[test:vars]
proxy=my_proxy:8080
再次感谢Ripper Tops为您的时间和帮助:)