我的Ansible剧本使用代理连接到远程节点。
当Ansible剧本运行时;在执行ssh步骤时,会显示以下错误。
[root@vm1-msdp ANSIBLE]# ansible-playbook fend_file.yaml -i env/target -vvvvv
PLAY [LAB1] *******************************************************************
GATHERING FACTS ***************************************************************
<10.169.99.222> ESTABLISH CONNECTION FOR USER: msdp
<10.169.99.222> REMOTE_MODULE setup
<10.169.99.222> EXEC sshpass -d9 ssh -C -tt -vvv -o ProxyCommand="nc -x 142.133.134.161:1088 %h %p" -o StrictHostKeyChecking=no -o GSSAPIAuthentication=no -o PubkeyAuthentication=no -o User=msdp -o ConnectTimeout=10 10.169.99.222 /bin/sh -c 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1473708903.98-28407509853006 && echo $HOME/.ansible/tmp/ansible-tmp-1473708903.98-28407509853006'
fatal: [10.169.99.222] => SSH Error: ssh_exchange_identification: Connection closed by remote host
It is sometimes useful to re-run the command using -vvvv, which prints SSH debug output to help diagnose the issue.
但是当我自己运行ssh命令时,我能够成功连接。
[root@vm1-msdp ANSIBLE]# ssh -C -tt -o ProxyCommand="nc -x 142.133.134.161:1088 %h %p" -o StrictHostKeyChecking=no -o GSSAPIAuthentication=no -o PubkeyAuthentication=no -o User=root -o ConnectTimeout=10 10.169.99.222
root@10.169.99.222's password:
Last login: Mon Sep 12 12:28:19 2016 from 10.169.102.6
root@IC02 ~ #
我需要清除任何ansible文件吗?
最佳答案
手动运行SSH命令时,您是在指定root用户。您的Ansible剧本正在使用本地用户msdp
。尝试在库存文件中设置ansible_user
变量。也许像这样:
10.169.99.22 ansible_user=root
关于ssh - Ansible给出ssh_exchange_identification错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39457540/