问题
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
来源:https://stackoverflow.com/questions/45044286/ansible-how-to-solve-sudo-a-password-is-required-error