Deux options - la première, comme vous l'avez dit dans votre propre réponse, consiste à définir la variable d'environnement ANSIBLE_HOST_KEY_CHECKING
sur False.
La deuxième façon de le définir est de le placer dans un fichier ansible.cfg, et c'est une option très utile car vous pouvez soit définir cela globalement (au niveau du système ou de l'utilisateur, dans /etc/ansible/ansible.cfg
ou ~/.ansible.cfg
), soit dans un fichier de configuration dans le même répertoire en tant que playbook que vous exécutez.
Pour ce faire, créez un ansible.cfg
fichier dans l'un de ces emplacements et incluez ceci:
[defaults]
host_key_checking = False
Vous pouvez également définir de nombreux autres paramètres par défaut utiles, comme s'il faut ou non rassembler des faits au début d'une lecture, fusionner les hachages déclarés à plusieurs endroits ou en remplacer un par un autre, etc. Il y a une grande liste d'options ici dans la documentation Ansible.
Edit: une note sur la sécurité.
La validation de la clé d'hôte SSH est une couche de sécurité significative pour les hôtes persistants - si vous vous connectez plusieurs fois à la même machine, il est utile d'accepter la clé d'hôte localement.
Pour les instances EC2 à plus longue durée de vie, il serait logique d'accepter la clé d'hôte avec une tâche exécutée une seule fois lors de la création initiale de l'instance:
- name: Write the new ec2 instance host key to known hosts
connection: local
shell: "ssh-keyscan -H {{ inventory_hostname }} >> ~/.ssh/known_hosts"
Il n'y a pas de valeur de sécurité pour vérifier les clés d'hôte sur les instances que vous mettez en place dynamiquement et supprimez juste après l'exécution du playbook, mais il y a une valeur de sécurité dans la vérification des clés d'hôte pour les machines persistantes. Vous devez donc gérer la vérification des clés d'hôte différemment par environnement logique.
- Laisser la vérification activée par défaut (dans
~/.ansible.cfg
)
- Désactivez la vérification des clés d'hôte dans le répertoire de travail pour les playbooks que vous exécutez sur des instances éphémères (
./ansible.cfg
parallèlement au playbook pour les tests unitaires contre les VM vagabondes, l'automatisation pour les instances ec2 de courte durée)