Devido ao fato de eu ter respondido isso em 2014, eu atualizei minha resposta para contabilizar as versões mais recentes do ansible.
Sim, você pode fazer isso no nível do host / inventário (o que se tornou possível nas versões mais recentes do ansible ) ou no nível global:
inventário :
Adicione o seguinte.
ansible_ssh_common_args='-o StrictHostKeyChecking=no'
hospedeiro :
Adicione o seguinte.
ansible_ssh_extra_args='-o StrictHostKeyChecking=no'
as opções de hosts / inventário funcionarão com o tipo de conexão ssh
e não paramiko
. Algumas pessoas podem argumentar fortemente que o inventário e os hosts são mais seguros porque o escopo é mais limitado.
global:
Guia do usuário Ansible - Verificação de chave de host
Você pode fazer isso no arquivo /etc/ansible/ansible.cfg
ou ~/.ansible.cfg
:
[defaults]
host_key_checking = False
Ou você pode configurar uma variável env (isso pode não funcionar nas versões mais recentes do ansible):
export ANSIBLE_HOST_KEY_CHECKING=False
ANSIBLE_HOST_KEY_CHECKING
funciona, mas-e 'host_key_checking=False'
não funciona.ansible_ssh_common_args='-o StrictHostKeyChecking=no'
ouansible_ssh_extra_args='-o StrictHostKeyChecking=no'
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
ou
à sua definição de host (consulte Ansible Behavioral Inventory Parameters ).
Isso funcionará desde que você use o
ssh
tipo de conexão, nãoparamiko
ou qualquer outra coisa).Por exemplo, uma definição de host Vagrant seria semelhante a ...
ou
A execução do Ansible será bem-sucedida sem alterar nenhuma variável de ambiente.
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:
fonte
ansible_ssh_common_args: '-o StrictHostKeyChecking=no'
no arquivo group_vars arquivo yml.Não pude usar:
no arquivo de inventário. Parece que o ansible não considera essa opção no meu caso (ansible 2.0.1.0 do pip no ubuntu 14.04)
Decidi usar:
Isso me ajudou.
Além disso, você pode definir essa variável no grupo em vez de cada host:
fonte
UserKnownHostsFile
/GlobalKnownHostsFile
para/dev/null
também funciona. É estranho que a configuraçãoStrictHostKeyChecking
não funcione para você. O mais provável é que alguma opção na configuração do SSH seja a causa.-o UserKnownHostsFile=/dev/null
. Sem ele também não funcionou para mim, independentemente da localização e da forma que especifiqueiansible_ssh_common_args
descrito nas outras respostas.Ao
/etc/ansible/ansible.cfg
remover o comentário da linha:e
/etc/ansible/hosts
descomente a linhaIsso é tudo
fonte
Adicionar o seguinte à configuração do ansible funcionou durante o uso de comandos ad-hoc do ansible:
Versão Ansible
fonte
Você define essas configurações no arquivo
/etc/ansible/ansible.cfg
ou~/.ansible.cfg
ouansible.cfg
(em seu diretório atual)testado com ansible 2.9.6 no ubuntu 20.04
fonte