Ansible:如何解决;sudo:需要密码";错误?

Ansible:如何解决;sudo:需要密码";错误?,ansible,ansible-2.x,Ansible,Ansible 2.x,我有9台服务器,我正在尝试使用ansible安装一个包,我能够使用密码ssh到其中5台服务器,其他4台服务器在ssh'ng到它们时不要求任何密码 但是,我已将id_rsa.pub密钥复制到所有9台服务器 现在ansible脚本在5服务器上运行良好,但在剩下的4服务器上,我收到以下错误消息 致命:[xxx0?]:失败!=>{“changed”:false,“failed”:true,“module_stderr”:“与xxx0的连接”已关闭。\r\n,“module_stdout”:“sudo:需

我有9台服务器,我正在尝试使用ansible安装一个包,我能够使用密码ssh到其中5台服务器,其他4台服务器在ssh'ng到它们时不要求任何密码

但是,我已将id_rsa.pub密钥复制到所有9台服务器

现在ansible脚本在5服务器上运行良好,但在剩下的4服务器上,我收到以下错误消息

致命:[xxx0?]:失败!=>{“changed”:false,“failed”:true,“module_stderr”:“与xxx0的连接”已关闭。\r\n,“module_stdout”:“sudo:需要密码”\r\n;“msg”:“module Faile”,“rc”:1}

我的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/config

Host xx0? xx0? xx0? xx0? xx0? xx0? xx0? xx0? xx0? .xyz.com
  User yyy
  Port 22
ansible版本=ansible 2.3.1.0

如何解决此错误?

您会遇到一个错误:

sudo:需要密码

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

相反,这意味着正在建立的连接没有任何问题


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

主要问题是ansible任务需要4台服务器的密码,因此我确实导出了ask sudo密码,它成功了。 由于密码问题,它失败了

export ANSIBLE_ASK_SUDO_PASS=true

可能您在失败的4台服务器上的.pub文件上有权限错误。在哪里可以看到.pub文件?它在您复制到的目录中。我没办法知道。另外,对于其他的评论很抱歉,这是为了另一个问题。它已被删除。我已将id_rsa密钥复制到服务器上的授权密钥文件中,但没有.pub文件。问题是,您希望检查脚本需要访问的任何文件的文件权限,以确保它们可以使用。阅读,在你需要的地方,在你需要的地方执行,等等。但是我有办法知道你需要什么,在哪里。或者更确切地说,在库存文件中给出
ansible\u sudo\u pass
?这也会起作用?
[弃用警告]:默认的\u ASK\u SUDO\u PASS选项,支持作为通用框架的BENG。此功能将在2.8版中删除。可以通过在ansible.cfg中设置Deprecation\u warnings=False来禁用弃用警告。
要满足从命令行运行的ansible进程的弃用警告,请添加标志
--ask-been-pass
(即完整命令可能如下所示
ansible all--ask-been-pass-b--been user=root-m shell-a'pwd>)