Ansible - 3 - 2 Démo ansible inventaire

Pour valider la connectivité entre Ansible et une machine cible, on commence par une connexion SSH manuelle : ssh user@target, acceptation de l'empreinte digitale, saisie du mot de passe, puis on sort. Cette première poignée de main est importante car elle ajoute la clé du serveur dans le fichier known_hosts de la machine de contrôle.

Ensuite on crée un projet, par exemple mkdir ansible-projects, et dans ce dossier un fichier d'inventaire contenant un alias target1 avec son adresse IP via ansible_host et le mot de passe SSH via ansible_ssh_pass. On lance ensuite la commande de test :

ansible target1 -i inventory -m ping

Le module ping effectue un test de bout en bout et s'assure que la connectivité fonctionne. Si tout est en place, Ansible répond SUCCESS et confirme que la communication entre le contrôleur et la cible est établie.

Le piège du known_hosts pour un second serveur

On ajoute ensuite target2 dans l'inventaire en suivant les mêmes étapes, avec son adresse IP et son mot de passe. Le test échoue cette fois-ci. Le message d'erreur évoque le plugin SSH et la clé d'hôte : il manque l'empreinte digitale du second serveur dans le fichier known_hosts de la machine de contrôle, car on n'a pas fait la première connexion SSH manuelle pour cette cible. C'est exactement la raison de l'échec.

Deux options pour résoudre le problème : faire un SSH manuel depuis la machine de contrôle vers la cible et accepter l'empreinte, ou désactiver la vérification de clé d'hôte via le fichier de configuration Ansible. Dans ansible.cfg, on décommente la ligne host_key_checking et on la passe à False. Après sauvegarde, le test ping passe avec succès. Cette seconde méthode n'est cependant pas recommandée en production : il est préférable d'utiliser des clés SSH pour établir la connectivité plutôt que des mots de passe.