W związku z tym, że odpowiedziałem na to w 2014 roku, zaktualizowałem swoją odpowiedź, aby uwzględnić nowsze wersje ansible.
Tak, możesz to zrobić na poziomie hosta / ekwipunku (co stało się możliwe w nowszych wersjach ansibla ) lub na poziomie globalnym:
inwentarz :
Dodaj następujące elementy.
ansible_ssh_common_args='-o StrictHostKeyChecking=no'
gospodarz :
Dodaj następujące elementy.
ansible_ssh_extra_args='-o StrictHostKeyChecking=no'
hosty / opcje spisu będą działać z typem połączenia, ssh
a nie paramiko
. Niektórzy ludzie mogą zdecydowanie argumentować, że zasoby i hosty są bezpieczniejsze, ponieważ zakres jest bardziej ograniczony.
światowy:
Podręcznik użytkownika Ansible - Sprawdzanie klucza hosta
Możesz to zrobić w pliku /etc/ansible/ansible.cfg
lub ~/.ansible.cfg
:
[defaults]
host_key_checking = False
Lub możesz ustawić i zmienną env (może to nie działać w nowszych wersjach ansibla):
export ANSIBLE_HOST_KEY_CHECKING=False
ANSIBLE_HOST_KEY_CHECKING
działa, ale-e 'host_key_checking=False'
nie działa.ansible_ssh_common_args='-o StrictHostKeyChecking=no'
lubansible_ssh_extra_args='-o StrictHostKeyChecking=no'
Tak, możesz to ustawić na poziomie zasobów / hosta.
Biorąc pod uwagę już zaakceptowaną odpowiedź, myślę, że jest to lepsza odpowiedź na pytanie, jak sobie z tym poradzić na poziomie zapasów. Uważam, że jest to bezpieczniejsze dzięki odizolowaniu tego niezabezpieczonego ustawienia od hostów wymaganych do tego (np. Systemów testowych, lokalnych maszyn programistycznych).
To, co możesz zrobić na poziomie zapasów, to dodać
lub
do definicji swojego hosta (patrz Ansible Behavioral Inventory Parameters ).
To zadziała, pod warunkiem, że użyjesz
ssh
typu połączenia, a nieparamiko
lub czegoś innego).Na przykład definicja hosta Vagrant wyglądałaby następująco…
lub
Uruchomienie Ansible zakończy się wtedy sukcesem bez zmiany żadnej zmiennej środowiskowej.
Jeśli chcesz to zrobić dla grupy gospodarzy, oto sugestia, aby uczynić ją dodatkową grupą jako zmienną dla istniejącej grupy, na przykład:
źródło
ansible_ssh_common_args: '-o StrictHostKeyChecking=no'
w pliku yml plików group_vars.Nie mogłem użyć:
w pliku inwentarza. Wygląda na to, że ansible nie bierze pod uwagę tej opcji w moim przypadku (ansible 2.0.1.0 z pip w Ubuntu 14.04)
Postanowiłem użyć:
Pomogło mi.
Możesz także ustawić tę zmienną w grupie zamiast tego dla każdego hosta:
źródło
UserKnownHostsFile
/GlobalKnownHostsFile
na/dev/null
również faktycznie działa. To dziwne, że ustawienieStrictHostKeyChecking
nie działa dla Ciebie. Najprawdopodobniej przyczyną jest jakaś opcja w konfiguracji SSH.-o UserKnownHostsFile=/dev/null
. Bez tego też po prostu nie zadziałało, niezależnie od lokalizacji i sposobu, któryansible_ssh_common_args
określiłem w innych odpowiedziach.W
/etc/ansible/ansible.cfg
Odkomentuj linii:i
/etc/ansible/hosts
odkomentuj linięTo wszystko
źródło
Dodanie następujących elementów do konfiguracji ansible działało podczas korzystania z poleceń ansible ad-hoc:
Wersja Ansible
źródło
Możesz ustawić te konfiguracje w pliku
/etc/ansible/ansible.cfg
lub~/.ansible.cfg
lubansible.cfg
(w Twoim bieżącym katalogu)testowano z ansible 2.9.6 w Ubuntu 20.04
źródło