Vorrei usare ansible per gestire un gruppo di server esistenti. Ho creato un ansible_hosts
file e testato con successo (con l' -K
opzione) con comandi rivolti solo a un singolo host
ansible -i ansible_hosts host1 --sudo -K # + commands ...
Il mio problema ora è che le password degli utenti su ciascun host sono diverse, ma non riesco a trovare un modo per gestirle in Ansible.
Utilizzando -K
, mi viene richiesta solo una singola password sudo in anticipo, che quindi sembra essere provata per tutti gli host successivi senza richiedere:
host1 | ...
host2 | FAILED => Incorrect sudo password
host3 | FAILED => Incorrect sudo password
host4 | FAILED => Incorrect sudo password
host5 | FAILED => Incorrect sudo password
Ricerca finora:
una domanda StackOverflow con una risposta errata ("uso
-K
") e una risposta dell'autore che dice "Ho scoperto che avevo bisogno di un sudo senza password"i documenti Ansible , che dicono "L'uso di sudo senza password rende le cose più facili da automatizzare, ma non è necessario ." (enfatizzare il mio)
questa domanda StackExchange di sicurezza che lo prende come letto
NOPASSWD
richiestoarticolo "Provisioning scalabile e comprensibile ..." che dice:
"L'esecuzione di sudo potrebbe richiedere la digitazione di una password, che è un modo sicuro per bloccare Ansible per sempre. Una semplice soluzione è eseguire visudo sull'host di destinazione e assicurarsi che l'utente che Ansible utilizzerà per accedere non debba digitare una password"
articolo "Basic Ansible Playbooks" , che dice
"Ansible potrebbe accedere al server di destinazione come root ed evitare la necessità di sudo, o lasciare che l'utente ansible abbia sudo senza password, ma il pensiero di fare uno dei due fa minacciare la milza di saltare il mio esofago e bloccare la trachea, quindi non"
I miei pensieri esattamente, ma come estendere oltre un singolo server?
rispondi al numero 1227 , "Ansible dovrebbe chiedere la password sudo per tutti gli utenti di un playbook", che è stata chiusa un anno fa da mpdehaan con il commento "Non ho visto molte richieste per questo, penso che la maggior parte delle persone stia facendo una sola domanda account utente o utilizzo delle chiavi il più delle volte. "
Quindi ... come stanno le persone che usano Ansible in situazioni come queste? Impostazione NOPASSWD
in /etc/sudoers
, il riutilizzo di password in host o l'abilitazione di accesso radice SSH tutti sembrano piuttosto drastiche riduzioni di sicurezza.
sudo
(che dovrebbe comunque richiedere una password).
ansible_ssh_password
impostazione si applica solo alla password SSH (l'indizio è nel nome ...). E sto già utilizzando l'accesso SSH basato su chiave.