运行 playbook returns: 无法通过 ssh 连接到主机,通过 运行 ping all 解决

Running playbook returns: Failed to connect to the host via ssh, solved by running ping all

我有一个 ansible 剧本,我 运行 它:

sudo ansible-playbook -i hosts startelk.yml -vvv

每次,在我更改 hosts 文件后,运行使用相同的剧本会导致 "Failed to connect to the host via ssh"。如果我 运行

ansible all -m ping

先执行playbook命令,playbook启动成功

有谁知道为什么每次更改 hosts(或其他一些)文件后我都必须 运行 ping,然后我的 playbook ssh 连接才能正常工作,否则没有?我不想每次需要在 Ansible 中更改某些内容时都被 运行ning ping。

谢谢!

运行 "sudo ansible-playbook ..." 这样控制器以 root 身份连接主机不是一个好主意。最佳做法是不允许 root ssh 连接。

最佳做法是:

  1. 运行 作为普通用户的 ansible-playbook
  2. 配置 remote_user
  3. 通过 becomebecome_user.
  4. 提升权限

Understanding Privilege Escalation 阅读更多内容。