Sì, puoi impostarlo a livello di inventario / host.
Con una risposta già accettata presente, penso che questa sia una risposta migliore alla domanda su come gestirla a livello di inventario. Lo considero più sicuro isolando questa impostazione insicura agli host richiesti per questo (ad esempio, sistemi di test, macchine di sviluppo locale).
Quello che puoi fare a livello di inventario è aggiungere
ansible_ssh_common_args='-o StrictHostKeyChecking=no'
o
ansible_ssh_extra_args='-o StrictHostKeyChecking=no'
alla definizione del tuo host (vedi Ansible Behavioral Inventory Parameters ).
Funzionerà a condizione di utilizzare il sshtipo di connessione, non paramikoo qualcos'altro).
Ad esempio, una definizione di host Vagrant sarebbe simile a ...
vagrant ansible_port=2222 ansible_host=127.0.0.1 ansible_ssh_common_args='-o StrictHostKeyChecking=no'
o
vagrant ansible_port=2222 ansible_host=127.0.0.1 ansible_ssh_extra_args='-o StrictHostKeyChecking=no'
L'esecuzione di Ansible avrà quindi esito positivo senza modificare alcuna variabile di ambiente.
$ ansible vagrant -i <path/to/hosts/file> -m ping
vagrant | SUCCESS => {
"changed": false,
"ping": "pong"
}
Nel caso in cui desideri farlo per un gruppo di host, ecco un suggerimento per renderlo una var di gruppo supplementare per un gruppo esistente come questo:
[mytestsystems]
test[01:99].example.tld
[insecuressh:children]
mytestsystems
[insecuressh:vars]
ansible_ssh_common_args='-o StrictHostKeyChecking=no'
ANSIBLE_HOST_KEY_CHECKINGfunziona ma-e 'host_key_checking=False'non funziona.