gpt4 book ai didi

ssh - 我可以 ssh 正常,但 ansible 说 "no route to host"

转载 作者:行者123 更新时间:2023-12-02 05:28:06 25 4
gpt4 key购买 nike

我编写了一个脚本来使用 vagrant 运行多个虚拟机,然后我必须使用 ansible 对其进行配置。不幸的是,我的主机是一台 Windows 计算机,因此我认为可以通过将所有虚拟机放入一个 VPN 中,然后从同一 VPN 中的另一台计算机配置它们来解决该问题。

理论上,它是有效的...我可以毫无问题地 ssh 进入其他机器。但是当我运行我的 ansible 剧本时,ansible 失败了。

首先,当使用 ssh: connect to host 10.1.2.100 [10.1.2.100] port 22: No route to host 运行 ansible 时,我收到消息“-vvvv

这是在晚上,我很累,第二天早上这个错误就没有再出现。不确定这是否与我正在进行部署的虚拟机同时重新启动有关,或者接收计算机从那时起被完全销毁和升级有关。无论如何,问题并没有消失。

重新创建两个虚拟机后,现在的结果:

# ansible-playbook -i vms -k -u vagrant vms.yml -vvvv

result:

<10.1.2.100> ESTABLISH SSH CONNECTION FOR USER: vagrant <10.1.2.100>
SSH: EXEC sshpass -d14 ssh -C -vvv -o ServerAliveInterval=50 -o
User=vagrant -o ConnectTimeout=10 -tt 10.1.2.100 '( umask 22 && mkdir
-p "$( echo $HOME/.ansible/tmp/ansible-tmp-1455781388.36-25193904947084 )" && echo
"$( echo $HOME/.ansible/tmp/ansible-tmp-1455781388.36-25193904947084
)" )' fatal: [10.1.2.100]: FAILED! => {"failed": true, "msg": "ERROR!
Using a SSH password instead of a key is not possible because Host Key
checking is enabled and sshpass does not support this. Please add
this host's fingerprint to your known_hosts file to manage this
host."}

到目前为止很清楚。我通过 ssh 进入另一个实例,将其添加到已知主机。这可以毫无问题地工作。

回到ansible,我再次尝试相同的命令。现在的结果是:

<10.1.2.100> ESTABLISH SSH CONNECTION FOR USER: vagrant <10.1.2.100>
SSH: EXEC sshpass -d14 ssh -C -vvv -o ServerAliveInterval=50 -o
StrictHostKeyChecking=no -o User=vagrant -o ConnectTimeout=10 -tt
10.1.2.100 '( umask 22 && mkdir -p "$( echo $HOME/.ansible/tmp/ansible-tmp-1455782149.99-271768166468916 )" &&
echo "$( echo
$HOME/.ansible/tmp/ansible-tmp-1455782149.99-271768166468916 )" )'
<10.1.2.100> PUT /tmp/tmpXQKa8Z TO
/home/vagrant/.ansible/tmp/ansible-tmp-1455782149.99-271768166468916/setup
<10.1.2.100> SSH: EXEC sshpass -d14 sftp -b - -C -vvv -o
ServerAliveInterval=50 -o StrictHostKeyChecking=no -o User=vagrant -o
ConnectTimeout=10 '[10.1.2.100]' fatal: [10.1.2.100]: UNREACHABLE! =>
{"changed": false, "msg": "ERROR! SSH Error: data could not be sent to
the remote host. Make sure this host can be reached over ssh",
"unreachable": true}

嗯,我确保可以通过 ssh 访问主机,非常感谢! Ansible 仍然无法通过,我快要因为思考可能是问题的事情而得脑瘤了。

有什么建议可能是什么问题吗?

最佳答案

此处报告了此问题,并提供了一些解决方法: https://github.com/ansible/ansible/issues/15321

共识似乎是:使用 ansible_password 或 b.在连接参数中使用 -u username。但是,任何事情都可能会破坏 SSH 连接,使其对于更高级别的应用程序来说看起来“无法访问”,因此我建议执行该票证中概述的每个步骤。

关于ssh - 我可以 ssh 正常,但 ansible 说 "no route to host",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35462248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com