Ansible主机密码

半兽人 发表于: 2025-09-10   最后更新时间: 2025-09-10 12:13:34  
{{totalSubscript}} 订阅, 37 游览

Ansible 本身不存密码,它是通过 SSH 登录到目标主机的

所以你得解决“控制机(运行 ansible 的机器)怎么能无密码登录目标机”。

1. 最推荐的方式:SSH 密钥免密登录

步骤:
在控制机上生成密钥对(如果没有):

ssh-keygen -t rsa -b 4096

一路回车,会在 ~/.ssh/id_rsa~/.ssh/id_rsa.pub 生成。

然后把公钥复制到目标机:

ssh-copy-id -i ~/.ssh/id_rsa.pub user@192.168.1.10

或者手动把 id_rsa.pub 的内容追加到目标机 ~/.ssh/authorized_keys

验证:

ssh user@192.168.1.10

如果能直接登录,不用密码,就成功了。

之后 Ansible 就能直接用这个私钥登录。

2. 如果必须用密码

有两种方式:

临时用密码登录

执行命令时加 -k 参数:

ansible all -m ping -k

它会提示你输入 SSH 密码。

Playbook 里用密码

也可以在 inventory.ini 里指定:

[webservers]
192.168.1.10 ansible_user=root ansible_password=123456

但这种方式 不推荐(明文密码,风险大)。

3. sudo 提权密码

如果目标机要求 sudo 输入密码(比如 Ubuntu 默认的 ubuntu 用户),还需要加:

ansible-playbook site.yml -K

它会提示你输入 sudo 密码。

或者在 inventory 里写:

192.168.1.11 ansible_user=ubuntu ansible_become_pass=你的sudo密码

总结

  • 标准做法:配置 SSH 免密钥登录,Ansible 就能无感知地连接。
  • 临时测试:-k 输密码。
  • 需要 sudo:-K 输 sudo 密码。
更新于 2025-09-10
在线,5小时前登录

查看Ansible更多相关的文章或提一个关于Ansible的问题,也可以与我们一起分享文章