我无法在 Ansible 中连接到主机。这是错误:
192.168.1.12 | UNREACHABLE! => { "changed": false, "msg": "错误!SSH 在连接过程中遇到未知错误。我们建议您使用 -vvvv 重新运行该命令,这将启用 SSH 调试输出以帮助诊断问题", "unreachable": true }
这是我的hosts
文件:
[test]
192.168.1.12
这是临时指令:
ansible all -m ping
我可以通过原始连接ssh
答案1
它返回的错误说明了一切,主机无法访问,因为 ssh 不起作用。看看平命令在 ansible 中执行:
ping - 尝试连接到主机,验证可用的 python 并在成功时返回 pong。
如果您可以执行原始 ssh,则不能确保 ansible 也可以。您需要设置基于密钥的 ssh 或添加密码选项:
ansible all -m ping --ask-pass
与远程机器对话时,Ansible 默认假定您正在使用 SSH 密钥。我们鼓励使用 SSH 密钥,但也可以在需要时通过提供选项来使用密码验证
--ask-pass
。如果使用 sudo 功能并且 sudo 需要密码,也请提供--ask-sudo-pass
。
参考: http://docs.ansible.com/ansible/intro_getting_started.html
答案2
通过删除 /etc/ansible/hosts 文件中的 ansible_become=true 来解决。