Comment définir la vérification de la clé hôte = false dans le fichier d'inventaire ansible?
Je voudrais utiliser la commande ansible-playbook
au lieu de ' vagrant provision
'. Cependant, la définition de host_key_checking=false
dans le fichier hosts
ne semble pas fonctionner.
# hosts file
vagrant ansible_ssh_private_key_file=~/.vagrant.d/insecure_private_key
ansible_ssh_user=vagrant ansible_ssh_port=2222 ansible_ssh_host=127.0.0.1
host_key_checking=false
Existe-t-il une variable de configuration en dehors de Vagrantfile
qui peut remplacer cette valeur?
5 réponses
en raison du fait que j'ai répondu à cela en 2014, j'ai mis à jour ma réponse pour tenir compte des versions plus récentes d'ansible.
Oui, vous pouvez le faire au niveau hôte / inventaire (ce qui est devenu possible sur les nouvelles versions ansible) ou au niveau global:
Inventaire:
Ajouter ce qui suit.
ansible_ssh_common_args='-o StrictHostKeyChecking=no'
Hôte :
Ajouter ce qui suit.
ansible_ssh_extra_args='-o StrictHostKeyChecking=no'
Les hôtes/options d'inventaire fonctionneront avec le type de connexion ssh
et non paramiko
. Certaines personnes peuvent fortement soutenir que l'inventaire et les hôtes sont plus sûrs parce que la portée est plus limitée.
Global:
-
, Vous pouvez le faire soit dans le
/etc/ansible/ansible.cfg
ou~/.ansible.cfg
fichier:[defaults] host_key_checking = False
-
Ou vous pouvez le passer à partir de la ligne de commande:
ansible-playbook -e 'host_key_checking=False' yourplaybook.yml
-
Ou vous pouvez configurer et env variable (cela peut ne pas fonctionner sur les nouvelles versions ansible):
export ANSIBLE_HOST_KEY_CHECKING=False
Oui, vous pouvez définir ceci au niveau inventaire/hôte.
avec une réponse déjà acceptée, je pense que c'est une meilleure réponse à la question sur la façon de gérer cela au niveau de l'inventaire. Je considère cela plus sûr en isolant ce paramètre non sécurisé aux hôtes requis pour cela (par exemple, systèmes de test, machines de développement locales).
Ce que vous pouvez faire au niveau de l'inventaire est d'ajouter
ansible_ssh_common_args='-o StrictHostKeyChecking=no'
Ou
ansible_ssh_extra_args='-o StrictHostKeyChecking=no'
À votre hôte définition (voir Ansible Comportementale de l'Inventaire des Paramètres).
Cela fonctionnera à condition d'utiliser le type de connexion ssh
, Pas paramiko
ou autre chose).
Par exemple, une définition D'hôte Vagabond ressemblerait à...
vagrant ansible_port=2222 ansible_host=127.0.0.1 ansible_ssh_common_args='-o StrictHostKeyChecking=no'
Ou
vagrant ansible_port=2222 ansible_host=127.0.0.1 ansible_ssh_extra_args='-o StrictHostKeyChecking=no'
L'exécution D'Ansible réussira alors sans changer de variable d'environnement.
$ ansible vagrant -i <path/to/hosts/file> -m ping
vagrant | SUCCESS => {
"changed": false,
"ping": "pong"
}
Si vous voulez faire cela pour un groupe d'hôtes, voici une suggestion pour en faire une Var de groupe supplémentaire pour un groupe existant comme celui-ci:
[mytestsystems]
test[01:99].example.tld
[insecuressh:children]
mytestsystems
[insecuressh:vars]
ansible_ssh_common_args='-o StrictHostKeyChecking=no'
Je ne pouvais pas utiliser:
ansible_ssh_common_args='-o StrictHostKeyChecking=no'
Dans le fichier d'inventaire. Il semble qu'ansible ne considère pas cette option dans mon cas (ansible 2.0.1.0 de pip dans ubuntu 14.04)
J'ai décidé d'utiliser:
server ansible_host=192.168.1.1 ansible_ssh_common_args= '-o UserKnownHostsFile=/dev/null'
Ça m'a aidé.
Vous pouvez également définir cette variable dans le groupe à la place pour chaque hôte:
[servers_group:vars]
ansible_ssh_common_args='-o UserKnownHostsFile=/dev/null'
Dans /etc/ansible/ansible.cfg
décommenter la ligne:
host_key_check = False
Et dans /etc/ansible/hosts
décommenter la ligne
client_ansible ansible_ssh_host=10.1.1.1 ansible_ssh_user=root ansible_ssh_pass=12345678
C'est tout
L'ajout suivant à Ansible config a fonctionné lors de l'utilisation des commandes ad-hoc ansible:
[ssh_connection]
# ssh arguments to use
ssh_args = -o StrictHostKeyChecking=no
Version Ansible
ansible 2.1.6.0
config file = /etc/ansible/ansible.cfg