ansible - 在 Ansible 中如果没有 sudo 则无法 ping 主机

标签 ansible

使用 Ansible 的第一天,我正在关注入(inject)门文档。

http://docs.ansible.com/intro_getting_started.html

我使用一台主机创建了“/etc/ansible/hosts”文件。

命令sudo ansible all -m ping -vvvv工作正常。

当我删除 sudo 时,我得到:

02.my_first_host.com | FAILED => SSH Error: Permission denied (publickey,gssapi-with-mic,password).
    while connecting to xx.xx.xx.xx:22
It is sometimes useful to re-run the command using -vvvv, which prints SSH debug output to help diagnose the issue.

这是/etc/ansible/hosts 文件的权限问题吗?我将/etc/ansible 的所有权递归地更改为我的用户,但没有成功。

最佳答案

您可以通过 behavioral parameters 在 list 文件中定义用户。但是-u,就像你所做的那样,应该有相同的结果。

Ansible 可能没有使用您的私钥,因为您没有 .ssh/config。 (疯狂猜测!)您可以使用 --private-key 显式传递 key 路径,或者再次将其设置为 list 或组/主机变量中的行为参数。

通过库存:

[all:vars]
user=root
ansible_ssh_private_key_file=/path/to/file

通过 group_vars,保存为与您的 playbook 相关的 group_vars/all:

...

user: root
ansible_ssh_private_key_file: /path/to/file

---

关于ansible - 在 Ansible 中如果没有 sudo 则无法 ping 主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30031776/

相关文章:

php - 使用 ansible 运行 php 脚本会抛出错误

ansible - 是否可以在 YAML 中编写 Ansible 主机/ list 文件?

ansible - 我可以在来自 tasks/main.yml 的 include_tasks 中包含多个任务吗?

ansible - 有没有办法在收到通知后取消处理程序?

ansible - 如何将 ansible 变量保存到在 playbook 执行结束时自动删除的临时文件中?

variables - Ansible:默认值下定义的变量未加载到我的剧本中

postgresql - ansible postgresql模块创建角色和添加数据库

ansible - 如何设置 Ansible 层特定的库存变量?

将文件复制到 ansible 主机并替换自定义变量

python - Ansible:playbook 未与 python3 一起运行