首页 > 解决方案 > Ansible ping 无法访问

问题描述

10.1.1.96是我的 Ansible 主节点。10.1.1.77是我的奴隶。我可以通过使用ssh ubuntu@10.1.1.77成功地从 master SSH slave 。

但是当我从 master 执行 ansible ping 时,我收到以下消息

等/ansible/hosts 文件:

[servers]

server1 ansible_ssh_host=10.1.1.77

使用的 Ping 命令:

sudo ansible -m ping server1 -u ubuntu

结果:

 server1 | UNREACHABLE! => {
     "changed": false,
     "msg": "Failed to connect to the host via ssh: ubuntu@10.1.1.77: Permission denied (publickey,password).",
     "unreachable": true

为什么会这样?我哪里错了?

标签: ubuntuansible

解决方案


因此,当您使用公钥对远程服务器进行身份验证时,您的 SSH 连接会失败。我猜您正在使用密码登录远程服务器。

请注意,您还可以在清单文件中设置远程用户,这样您就不必在调用时指定它ansible-playbook

[all:vars]
ansible_user=ubuntu

所以对你来说,有两种前进的方式:

设置 SSH 密钥

使用以下命令将您的公钥从本地计算机复制到远程计算机,以便您无需密码即可登录:

ssh-copy-id ubuntu@10.1.1.77

然后,您应该能够在不指定密码和使用公钥的情况下登录。

使用 ansible_ssh_pass

将您的用户的密码添加到您的清单文件中,如下所示:

[all:vars]
ansible_user=ubuntu
ansible_ssh_pass=mypassword

然后,此密码将用于清单文件中的所有主机。


推荐阅读