Ansible: how to solve “sudo: a password is require

2019-01-28 13:28发布

问题:

This question already has an answer here:

  • How can a user with SSH keys authentication have sudo powers in Ansible? [duplicate] 1 answer

I have 9 servers and i am trying to install a package using ansible, i am able to ssh into 5 of the servers using a password and other 4 does not ask any password while ssh'ng into them.

However i have copied id_rsa.pub key to all the 9 servers.

Now the ansible script is working fine for 5 server but w remaining 4 i am getting the following error message.

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}

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

Host xx0? xx0? xx0? xx0? xx0? xx0? xx0? xx0? xx0? .xyz.com
  User yyy
  Port 22

ansible version = ansible 2.3.1.0

How can i solve this error ?

回答1:

You get an error:

sudo: a password is required

It doesn't mean you can't connect to the target machine it means you need to provide a password to run a command with elevated permissions (or that you can't run a command with elevated permissions altogether).

On the contrary, it means the connection is being established with no problems.

Fix your sudoers configuration on the affected machines.



回答2:

The main issue is that for ansible task needs the password of 4 servers, so i did export ask sudo password and it worked. It was failing because of the password.

export ANSIBLE_ASK_SUDO_PASS=true