Aufgrund der Tatsache, dass ich dies 2014 beantwortet habe, habe ich meine Antwort aktualisiert, um neuere Versionen von ansible zu berücksichtigen.
Ja, Sie können dies auf Host- / Inventarebene tun (was bei neueren Ansible-Versionen möglich wurde ) oder auf globaler Ebene :
Inventar :
Fügen Sie Folgendes hinzu.
ansible_ssh_common_args='-o StrictHostKeyChecking=no'
Gastgeber :
Fügen Sie Folgendes hinzu.
ansible_ssh_extra_args='-o StrictHostKeyChecking=no'
Hosts / Inventaroptionen funktionieren mit dem Verbindungstyp ssh
und nicht paramiko
. Einige Leute argumentieren möglicherweise nachdrücklich, dass Inventar und Hosts sicherer sind, da der Umfang eingeschränkter ist.
global:
Ansible User Guide - Überprüfung des Hostschlüssels
Sie können dies entweder in der /etc/ansible/ansible.cfg
oder in der ~/.ansible.cfg
Datei tun :
[defaults]
host_key_checking = False
Oder Sie können eine Variable einrichten und env einrichten (dies funktioniert möglicherweise nicht bei neueren ansible-Versionen):
export ANSIBLE_HOST_KEY_CHECKING=False
ANSIBLE_HOST_KEY_CHECKING
funktioniert,-e 'host_key_checking=False'
aber nicht.ansible_ssh_common_args='-o StrictHostKeyChecking=no'
oderansible_ssh_extra_args='-o StrictHostKeyChecking=no'
Ja, Sie können dies auf Inventar- / Hostebene festlegen.
Mit einer bereits akzeptierten Antwort denke ich, dass dies eine bessere Antwort auf die Frage ist, wie dies auf Inventarebene gehandhabt werden soll. Ich halte dies für sicherer, indem ich diese unsichere Einstellung auf die dafür erforderlichen Hosts (z. B. Testsysteme, lokale Entwicklungsmaschinen) isoliere.
Was Sie auf Inventarebene tun können, ist Hinzufügen
oder
zu Ihrer Host-Definition (siehe Ansible Behavioral Inventory Parameters) ).
Dies funktioniert, sofern Sie nicht den
ssh
Verbindungstyp verwendenparamiko
oder etwas anderes).Zum Beispiel würde eine Vagrant-Hostdefinition wie folgt aussehen ...
oder
Das Ausführen von Ansible ist dann erfolgreich, ohne dass eine Umgebungsvariable geändert wird.
Wenn Sie dies für eine Gruppe von Hosts tun möchten, finden Sie hier einen Vorschlag, um es zu einer zusätzlichen Gruppenvariablen für eine vorhandene Gruppe wie diese zu machen:
quelle
ansible_ssh_common_args: '-o StrictHostKeyChecking=no'
in die Datei group_vars yml-Datei aufgenommen.Ich konnte nicht verwenden:
in der Inventardatei. Es scheint, dass ansible diese Option in meinem Fall nicht berücksichtigt (ansible 2.0.1.0 von pip in ubuntu 14.04).
Ich entschied mich für:
Es hat mir geholfen.
Sie können diese Variable auch für jeden Host in einer Gruppe festlegen:
quelle
UserKnownHostsFile
/ funktioniert auch in der Tat. Es ist seltsam, dass die Einstellung bei Ihnen nicht funktioniert. Höchstwahrscheinlich ist eine Option in Ihrer SSH-Konfiguration die Ursache.GlobalKnownHostsFile
/dev/null
StrictHostKeyChecking
-o UserKnownHostsFile=/dev/null
. Ohne das hat es auch bei mir einfach nicht funktioniert, unabhängig von dem Ort und der Art und Weise, die ichansible_ssh_common_args
in den anderen Antworten angegeben habe.In
/etc/ansible/ansible.cfg
Kommentar die Zeile:und in
/etc/ansible/hosts
Kommentar die ZeileDas ist alles
quelle
Das Hinzufügen von Folgendem zur Ansible-Konfiguration funktionierte bei Verwendung von Ansible-Ad-hoc-Befehlen:
Ansible Version
quelle
Sie legen diese Konfigurationen entweder in der Datei
/etc/ansible/ansible.cfg
oder~/.ansible.cfg
oderansible.cfg
(in Ihrem aktuellen Verzeichnis) festgetestet mit ansible 2.9.6 in ubuntu 20.04
quelle