我正在尝试在多个服务器上运行ansible角色,但是我收到一个错误:
致命:[192.168.0.10]:无法访问! => {“已更改”:false,“msg”:“无法通过ssh连接到主机 . ”,“无法访问”:true}
我的/ etc / ansible / hosts文件如下所示:
192.168.0.10 ansible_sudo_pass='passphrase' ansible_ssh_user=user
192.168.0.11 ansible_sudo_pass='passphrase' ansible_ssh_user=user
192.168.0.12 ansible_sudo_pass='passphrase' ansible_ssh_user=user
我不知道发生了什么 - 一切都很好 - 我可以通过SSH登录,但ansible ping返回相同的错误 .
来自详细执行的日志:
<192.168.0.10>为用户 Build SSH连接:user <192.168.0.10> SSH:EXEC ssh -C -vvv -o ControlMaster = auto -o ControlPersist = 60s -o KbdInteractiveAuthentication = no -o PreferredAuthentications = gssapi-with-mic ,gssapi-keyex,hostbased,publickey -o PasswordAuthentication = no -o User = user -o ConnectTimeout = 10 -o ControlPath = / root / .ansible / cp / ansible-ssh-%h-%p-%r 192.168.0.10 '/ bin / sh -c'“'”'(umask 22 && mkdir -p“echo $ HOME / .ansible / tmp / ansible-tmp-1463151813.31-156630225033829”&& echo“echo $ HOME / .ansible / tmp / ansible -tmp-1463151813.31-156630225033829“)''''''
你能以某种方式帮助我吗?如果我必须在本地模式(-c local)中使用ansible,那么它就没用了 .
我试图删除ansible_sudo_pass和ansible_ssh_user,但它没有帮助 .
6 回答
你需要更改
ansible_ssh_pass
或ssh键,例如我在我的库存文件中使用它:之后我可以连接到远程主机:
结果如下:
希望对你有所帮助 .
转到您的playbook目录并运行ansible all -m ping
尝试将您的主机文件修改为:
重新加载vm时,ansible_ssh_port发生了变化 .
==>默认:启动VM ...
==>默认值:等待机器启动 . 这可能需要几分钟的时间...
所以我必须更新inventory / hosts文件,如下所示:
我有这个问题,但原因与其他答案中记载的原因不同 . 我尝试部署的主机只能通过跳转框才能使用 . 最初,我认为这是因为Ansible没有识别我的SSH配置文件,但确实如此 . 我的解决方案是确保SSH配置文件中存在的用户与Ansible playbook中的用户匹配 . 这解决了我的问题 .
$ansible -m ping all -vvv
在Ubuntu或CentOS上安装ansible之后 . 你可以在下面留言 . 不要惊慌,您必须拥有用户[
/home/user_name/.ansible/tmp/
]的文件/tmp
的访问权限 . “Authentication or permission failure
” .这种预先配合将解决问题 .