J'aimerais utiliser ansible pour gérer un groupe de serveurs existants. J'ai créé un ansible_hosts
fichier et testé (avec l' -K
option) avec succès avec des commandes qui ne ciblent qu'un seul hôte
ansible -i ansible_hosts host1 --sudo -K # + commands ...
Mon problème actuel est que les mots de passe des utilisateurs sur chaque hôte sont différents, mais je ne trouve pas de moyen de gérer cela dans Ansible.
En utilisant -K
, je ne suis invité à entrer qu'un seul mot de passe sudo au départ, qui semble alors être essayé pour tous les hôtes suivants sans demander:
host1 | ...
host2 | FAILED => Incorrect sudo password
host3 | FAILED => Incorrect sudo password
host4 | FAILED => Incorrect sudo password
host5 | FAILED => Incorrect sudo password
Recherche jusqu'ici:
une question StackOverflow avec une réponse incorrecte ("use
-K
") et une réponse de l'auteur disant "J'ai découvert qu'il me fallait sudo sans mot de passe"La documentation Ansible , qui dit: "L'utilisation de sudo sans mot de passe facilite l'automatisation, mais ce n'est pas obligatoire ." (c'est moi qui souligne)
cette question de sécurité StackExchange qui prend comme lu ce qui
NOPASSWD
est requisarticle "Approvisionnement évolutif et compréhensible ..." qui dit:
"Pour exécuter sudo, il peut être nécessaire de saisir un mot de passe, ce qui est un moyen sûr de bloquer Ansible. Une solution simple consiste à exécuter visudo sur l'hôte cible et à s'assurer que l'utilisateur qu'Ansible utilisera pour se connecter ne doit pas entrer de mot de passe"
article "Playbooks Ansible de base" , qui dit
"Ansible peut se connecter au serveur cible en tant que root et éviter la nécessité de sudo, ou laisser l'utilisateur de ansible le faire sans mot de passe, mais la pensée de le faire me fait craquer de me soulever l'oesophage et de bloquer ma trachée. ne pas "
Mes pensées exactement, mais alors comment s'étendre au-delà d'un seul serveur?
numéro 1227 d'ansible , "Ansible devrait demander un mot de passe sudo pour tous les utilisateurs d'un livre de jeu", qui a été fermé il y a un an par mpdehaan avec le commentaire "Je n'ai pas vu beaucoup de demande pour cela, je pense que la plupart des gens craignent un seul compte d'utilisateur ou en utilisant la plupart du temps des clés. "
Alors… comment les gens utilisent-ils Ansible dans de telles situations? La mise NOPASSWD
en place /etc/sudoers
, la réutilisation du mot de passe sur plusieurs hôtes ou l'activation de la connexion SSH racine semblent constituer des réductions drastiques de la sécurité.
sudo
(ce qui nécessite toujours un mot de passe).
ansible_ssh_password
paramètre ne s'applique qu'au mot de passe SSH (l'indice est dans le nom ...). & J'utilise déjà la connexion SSH basée sur des clés.