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

use*_*691 3 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}

我的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
Run Code Online (Sandbox Code Playgroud)

的〜/ .ssh /配置

Host xx0? xx0? xx0? xx0? xx0? xx0? xx0? xx0? xx0? .xyz.com
  User yyy
  Port 22
Run Code Online (Sandbox Code Playgroud)

ansible version = ansible 2.3.1.0

我该如何解决这个错误?

tec*_*raf 7

你收到一个错误:

sudo:需要密码

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

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

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


use*_*691 5

主要问题是,对于ansible任务,需要4台服务器的密码,因此我确实导出了要求sudo密码的命令,该密码可以正常工作。由于密码失败。

export ANSIBLE_ASK_SUDO_PASS=true
Run Code Online (Sandbox Code Playgroud)

  • 为了满足从命令行运行的Ansible进程的弃用警告,请添加标志`--ask-become-pass`(即完整的命令可能看起来像这样的`ansible all –ask-become-pass -b --become -user = root -m shell -a'pwd'`) (2认同)