Sim, você pode definir isso no nível de inventário / host.
Com uma resposta já aceita presente, acho que esta é uma resposta melhor para a pergunta sobre como lidar com isso no nível de estoque. Considero isso mais seguro isolando essa configuração insegura para os hosts necessários para isso (por exemplo, sistemas de teste, máquinas de desenvolvimento local).
O que você pode fazer no nível do inventário é adicionar
ansible_ssh_common_args='-o StrictHostKeyChecking=no'
ou
ansible_ssh_extra_args='-o StrictHostKeyChecking=no'
à sua definição de host (consulte Ansible Behavioral Inventory Parameters ).
Isso funcionará desde que você use o sshtipo de conexão, não paramikoou qualquer outra coisa).
Por exemplo, uma definição de host Vagrant seria semelhante a ...
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'
A execução do Ansible será bem-sucedida sem alterar nenhuma variável de ambiente.
$ ansible vagrant -i <path/to/hosts/file> -m ping
vagrant | SUCCESS => {
"changed": false,
"ping": "pong"
}
Caso você queira fazer isso para um grupo de hosts, aqui está uma sugestão para torná-lo um grupo var suplementar para um grupo existente como este:
[mytestsystems]
test[01:99].example.tld
[insecuressh:children]
mytestsystems
[insecuressh:vars]
ansible_ssh_common_args='-o StrictHostKeyChecking=no'
ANSIBLE_HOST_KEY_CHECKINGfunciona, mas-e 'host_key_checking=False'não funciona.