Ansible:如何解决“sudo:需要密码”错误?

时间:2017-07-11 20:53:55

标签: ansible ansible-2.x

我有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

我该如何解决这个错误?

2 个答案:

答案 0 :(得分:6)

您收到错误消息:

  

sudo :需要密码

这并不意味着您无法连接到目标计算机,这意味着您需要提供密码来运行具有提升权限的命令(或者您无法运行具有提升权限的命令)。

相反,这意味着建立连接没有问题。

修复受影响计算机上的sudoers配置。

答案 1 :(得分:3)

主要问题是,对于ansible任务需要4个服务器的密码,所以我确实导出了问sudo密码并且它有效。 由于密码而失败了。

export ANSIBLE_ASK_SUDO_PASS=true