我有9个服务器,我正在尝试使用ansible安装软件包,我可以使用密码ssh到5个服务器中,而其他4个服务器在ssh'ng时不会询问任何密码。
但是我已经将id_rsa.pub密钥复制到所有9台服务器上。
现在ansible脚本适用于5台服务器但是剩下的4我收到以下错误消息。
致命:[xxx0?]:失败了! => {“已更改”:false,“failed”:true,“module_stderr”:“连接到xxx0?已关闭。\ r \ n”,“module_stdout”:“sudo:需要密码\ r \ n”,“msg” :“MODULE FAILURE”,“rc”:1}
My Ansible.cfg
[defaults]
filter_plugins =./filter_plugins
roles_path = ./roles
sudo_user = root
host_key_checking = False
retry_files_enabled = False
password = ~/password.txt
timeout = 25
[ssh_connection]
ssh_args = -F ~/.ssh/config -o ControlMaster=no -o ControlPersist=30m
control_path = ~/.ssh/ansible-%%r@%%h:%%p
的〜/ .ssh /配置
Host xx0? xx0? xx0? xx0? xx0? xx0? xx0? xx0? xx0? .xyz.com
User yyy
Port 22
ansible version = ansible 2.3.1.0
我该如何解决这个错误?
答案 0 :(得分:6)
您收到错误消息:
sudo :需要密码
这并不意味着您无法连接到目标计算机,这意味着您需要提供密码来运行具有提升权限的命令(或者您无法运行具有提升权限的命令)。
相反,这意味着建立连接没有问题。
修复受影响计算机上的sudoers
配置。
答案 1 :(得分:3)
主要问题是,对于ansible任务需要4个服务器的密码,所以我确实导出了问sudo密码并且它有效。 由于密码而失败了。
export ANSIBLE_ASK_SUDO_PASS=true