Ho alcune difficoltà ad adattare la configurazione di Ansible al mio ambiente.SSH Ansible come un utente e Sudo come un altro
Il mio ambiente di test:
- PermitRootLogin no
- Solo un utente autorizzato a connettersi tramite SSH (foo, senza alcun privilegio)
- Un utente con privilegi sudo (bar ALL = (ALL) ALL)
mio inventario ospite ansible assomiglia a questo:
[servers]
server1 ansible_ssh_host=192.168.0.1 ansible_sudo=true ansible_ssh_user=foo ansible_sudo_user=bar
Ho una chiave SSH per l'utente foo.
Quando provo questo comando ad hoc (o qualsiasi altro) con la parola d'bar:
ansible server1 -m raw -a "echo test > /etc/testfile" --ask-sudo-pass
server1 | FAILED => Incorrect sudo password
Poi se faccio lo stesso comando con la password pippo:
ansible server1 -m raw -a "echo test > /etc/testfile" --ask-sudo-pass
Sorry, user foo is not allowed to execute '/bin/bash -c echo SUDO-SUCCESS-rlpfhamukjnsfyokqbjpbttviiuildif; echo test > /etc/testfile' as bar on server1.
Così Ansible sicuramente utilizzare foo come utente sudo e non bar come ho specificato. C'è un modo per forzare l'uso di bar invece di foo? Io davvero non capisco la funzionalità sudo su Ansible, anche se io uso lo stesso utente per tutto (bar per SSH e la password bar) give ansible mi restituisce:
server1 | FAILED | rc=1 >>
echo test > /etc/testfile : Permission denied
quando sto accedendo come bar sul mio host e facendo "sudo echo test>/etc/testfile" mi chiede la password della barra e fa il comando correttamente. Dove mi sbaglio con il comportamento di Ansible?