Ansible Fails to Authenticate Sudo Even When Sudo Pass is Given
What I would do is to use
strace -vfp `pidof sshd`
and see where it's failing.
Check the account as well, maybe it's restricted or something but my bet is that something is wrong with your /etc/hosts file or it does get changed in the process.
Using @lulian as a foothold in this answer, the problem came down to a rogue ansible_sudo_pass:
defined in the group_vars which was overriding the password entered for --ask-sudo-pass
.
Using the following:
while [[ -z $(ps -eaf|grep 'sshd: [U]ser1@pts/1') ]]; do
continue
done
strace -ff -vfp $(ps -eaf|grep 'sshd: [U]ser1@pts/1'|awk '{print $2}') -o /root/strace_sshd1_2.out
I was able to find that write(4, "{{ password }}\n", 15)
was being passed instead of the entered password. After some quick searching, I did indeed find ansible_sudo_pass
defined in my group_vars which was overriding my entered password.
As an FYI to everyone else, the ansible_sudo_pass:
definition seems to take precedence over --ask-sudo-pass
which, at first, seemed counter-intuitive. In the end, this is user error, but @lulian's methodology in debugging the SSH interaction as well as the relationship discovery between ansible_sudo_pass
and --ask-sudo-pass
should be very helpful for others out there. (Hopefully!)