2017-07-11 897 views
2

我有9个服务器,我试图安装一个使用ansible的软件包,我能够使用密码ssh进入5台服务器,而其他的4在ssh'ng进入时不会询问任何密码。Ansible:如何解决“sudo:需要密码”错误?

但是我已将id_rsa.pub键复制到所有9台服务器。

现在有用的脚本对5个服务器正常工作,但剩余4个4我收到以下错误消息。

fatal: [xxx0?]: FAILED! => {"changed": false, "failed": true, "module_stderr": "Connection to xxx0? closed.\r\n", "module_stdout": "sudo: a password is required\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-%%[email protected]%%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

我怎样才能解决这个问题?

+0

也许您在4台服务器上的.pub文件上存在权限错误,这些服务器出现故障。 – Difster

+0

我在哪里可以看到.pub文件? – Swat

+0

它位于您复制到的目录中。我无法知道这一点。 另外,对于其他评论感到抱歉,这是意味着另一个问题。它已被删除。 – Difster

回答

4

你得到一个错误:

sudo: a password is required

这并不意味着你不能连接到目标机器这意味着你需要提供密码才能运行使用提升的权限的命令(或者,你可以用完全提升的权限运行命令)。

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

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

+0

或者在库存文件中给出'ansible_sudo_pass'?那也可以工作? – Luv33preet

1

主要问题是,对于任务需要4个服务器的密码,所以我出口问问sudo密码,它的工作。 由于密码而失败。

export ANSIBLE_ASK_SUDO_PASS=true 
+0

'[DEPRECATION WARNING]:DEFAULT_ASK_SUDO_PASS选项,赞成成为一个通用框架。此功能将在版本2.8中删除 。通过在ansible.cfg中设置deprecation_warnings = False,可以禁用弃用警告 – gies0r