Posso ignorar a verificação de chave do host no Ansible?

19

Estou executando um manual do Ansible com um truque sutil para trabalhar em uma porta encaminhada de porta arbitrária (para que eu possa usar uma máquina sem acesso direto a muitas máquinas).

Eu tenho uma pré-tarefa para alterar a ansible_portvariável; portanto, quando começo a executar minhas tarefas e funções reais, sou solicitado a aceitar as teclas de host do localhost em alguma porta aleatória.

Como sou ingênuo e não me preocupo com segurança, gostaria que o ssh aceitasse e redirecionasse automaticamente para /dev/null(ou outro arquivo para log).

Isso é possível?

Peter Turner
fonte
Você pode fazer isso através das opções ssh que você passa para a configuração ansible.
Jiri Klouda

Respostas:

26

Isso geralmente é feito definindo o seguinte valor em ansible.cfg:

[defaults]
host_key_checking = False

Se você não deseja modificar, ansible.cfgpode definir uma variável de ambiente da seguinte maneira:

export ANSIBLE_HOST_KEY_CHECKING=False

Fonte: http://docs.ansible.com/ansible/intro_getting_started.html#host-key-checking

Zlemini
fonte
Estou usando o MacOS e definindo host_key_checking = False, mas ainda recebi "AVISO: POSSÍVEL SPOOFING DE DNS detectado!". Corrigi isso depois que percebi que havia me conectado a um host de destino com o mesmo nome anteriormente e o reconstruído para que houvesse uma chave antiga em ./ssh/known_hosts.
Chad Juliano
21

No seu ansible.cfgarquivo, você precisa adicionar a seguinte linha:

ssh_args = -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no

Você também pode adicionar essas opções no seu ~/.ssh/configem todas as máquinas a partir das quais você executa algo como isto:

Host *
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null
Jiri Klouda
fonte
1
Isso deve funcionar. Além disso, olhar para o ansible.cfg arquivo para mais definições :)
Dawny33
+1 para além do Dawny, porque aqueles que utilizam paramiko precisará usar ansible.cfg
Woodland Hunter
1
Existe uma maneira apropriada de definir isso dentro do manual? Eu tentei ansible_ssh_common_argse ansible_ssh_extra_argsele não substitui o que eu tenho no ansible.cfg. Eu tenho um ansible.cfg que eu uso para todo o resto e prefiro substituir esses parâmetros para esse tipo de manual do que copiá-lo apenas para fazer essa alteração.
Peter Turner
3
Não posso falar com essas variáveis, Peter, mas você pode colocar um ansible.cfg modificado no diretório com este manual, e ele terá precedência.
Woodland Hunter
1
UserKnownHostsFile = / dev / null interrompe completamente a segurança ssh
mmv-ru