ubuntu - 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
为什么会这样?我哪里错了?
解决方案
因此,当您使用公钥对远程服务器进行身份验证时,您的 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
然后,此密码将用于清单文件中的所有主机。
推荐阅读
- amazon-web-services - 如何使用基于列表的 AWS CLI 下载文件?
- php - 我无法在 mac OS + VS Code + MAMP 上启动 xdebug
- windows - 崩溃后如何自动删除驱动程序?
- react-native - 使用tipsi-stripe在React Native应用程序上实现ApplePay和GPay时出错
- javascript - Javascript:如何在动态添加的元素上定位 lightgallery.js
- ruby - 覆盖 Chrome 选项中间测试
- sql - 需要从sql server中的长字符串中解析出文本
- date - Quicksight 和月初至今
- node.js - 对于模型“类别”的路径“_id”处的值“some_id”,转换为 ObjectId 失败
- rendering - Grafana 图像渲染器插件不起作用