Frage Ansible blieb beim Sammeln von Fakten


Ich habe einige seltsame Probleme mit meiner Antwort (Vagabund).

Alles hat gestern funktioniert und mein Playbook hat gut funktioniert.

Heute hängt ansible auf "Fakten sammeln"?

Hier ist die ausführliche Ausgabe:

<5.xxx.xxx.xxx> ESTABLISH CONNECTION FOR USER: deploy
<5.xxx.xxx.xxx> REMOTE_MODULE setup
<5.xxx.xxx.xxx> EXEC ['ssh', '-C', '-tt', '-vvv', '-o', 'ControlMaster=auto', '-
o', 'ControlPersist=60s', '-o', 'ControlPath=/home/vagrant/.ansible/cp/ansible-s
sh-%h-%p-%r', '-o', 'Port=2221', '-o', 'KbdInteractiveAuthentication=no', '-o',
'PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey', '-o
', 'PasswordAuthentication=no', '-o', 'User=deploy', '-o', 'ConnectTimeout=10',
'5.xxx.xxx.xxx', "/bin/sh -c 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1411372677
.18-251130781588968 && chmod a+rx $HOME/.ansible/tmp/ansible-tmp-1411372677.18-2
51130781588968 && echo $HOME/.ansible/tmp/ansible-tmp-1411372677.18-251130781588
968'"]

35
2017-09-22 08:07


Ursprung


Es hängt wie viel Zeit? Hast du versucht vagrant ssh und untersuche während des Hanges, ob etwas Nützliches darin ist ps und netstat? Einer der ersten Verdächtigen in Hangs ist DNS. Überprüfen Sie, ob DNS von der virtuellen Maschine aus aufgelöst wird. - Antonis Christofides
Danke für deinen Kommentar. Die Lösung war einfach, Landstreicher zerstören und Landstreicher ... Ich denke immer noch, es ist komisch, dass es einfach aufgehört hat zu arbeiten? - Bj Blazkowicz
Ich hatte ein Problem mit Ansible, wenn es einen unzugänglichen (cifs-) Reittier gibt. - rektide
Hatte es gerade passiert, wurde es durch einen veralteten Host-Schlüssel in der known_hosts-Datei verursacht. Seltsam, dass die Verbindung nicht fehlschlug, wie es in diesem Fall üblich ist. - GnP
Kannst du sshd-Logs in der Vagrant-Box überprüfen? Möglicherweise müssen Sie "LogLevel DEBUG" in / etc / ssh / sshd_config einstellen, aber das liefert möglicherweise weitere Informationen zu den Vorgängen. - Pablo Martinez


Antworten:


Ich hatte ein ähnliches Problem mit Ansible Ping auf Landstreicher, es blieb einfach ohne Grund stecken und hat vorher absolut gut funktioniert. Im Gegensatz zu anderen Problemen wie ssh oder connective, sterben sie für immer ohne Zeitüberschreitung.

Eine Sache, die ich getan habe, um dieses Problem zu beheben, ist, ~ / .ansible Verzeichnis zu säubern und es funktioniert gerade wieder. Ich kann nicht herausfinden warum, aber es wurde gelöst.

Wenn Sie eine Änderung haben, um es wieder zu haben, versuchen Sie, ~ / .ansible Ordner zu säubern, bevor Sie Ihren Landstreicher auffrischen.


22
2017-10-29 02:44



rm -rf ~/.ansible hat auf El Captitan nicht funktioniert - Quanlong
rm -rf ~ / .ansible / cp ist genug - melihovv


Ansible kann aus einer Reihe von Gründen so hängen, in der Regel wegen eines Verbindungsproblems oder weil das Setup-Modul hängt. So können Sie das Problem eingrenzen, damit Sie es lösen können.

Ansible kann keine Verbindung zum Zielhost herstellen

Host Key (bekannte_Hosts) Probleme

1) Bei älteren Versionen von Ansible (2.1 oder älter) würde Ansible nicht immer sagen, ob der Host-Schlüssel für das Ziel auf der Quelle existiert oder ob es eine Nichtübereinstimmung gibt.

Lösung: Versuchen Sie, eine SSH-Verbindung mit den gleichen Parametern zu diesem Ziel zu öffnen. Möglicherweise finden Sie SSH-Fehler, die Sie beheben müssen, und dann funktioniert der Befehl.

2) Manchmal zeigt Ansible eine SSH-Verbindungsnachricht an, die mitten in einem anderen Status liegt, was dazu führt, dass Ansible bei dieser Aufgabe "einfriert":

Warning: the ECDSA host key for 'myhost' differs from the key for the IP address '10.10.1.10'
Offending key for IP in /etc/ssh/ssh_known_hosts:246
Matching host key in /etc/ssh/ssh_known_hosts:477
Are you sure you want to continue connecting (yes/no)?

In diesem Fall wird einfach "Ja" für so viele SSH-Fragen eingegeben, wie Sie gefragt wurden, damit das Spiel fortgesetzt werden kann. Danach können Sie die root known_hosts Probleme beheben.

Authentifizierungsprobleme mit dem privaten Schlüssel

Bei Verwendung der schlüsselbasierten Authentifizierung im Vergleich zum Kennwort gehören zu den anderen Problemen:

  • Der private Schlüssel ist möglicherweise nicht richtig am Ziel eingerichtet
  • Der private Schlüssel weist möglicherweise lokal falsche Berechtigungen auf (sollte nur für den Benutzer lesbar sein, der den Ansible-Job ausführt).

Lösung: Versuche zu laufen ansible -m ping <destination> -k gegen das Problem Host - wenn das nicht funktioniert, versuchen Sie die Host Key Probleme Lösungen oben.

Ansible kann nicht schnell Fakten sammeln

Das setup Modul (wenn es automatisch am Anfang eines ansible-playbook ausführen, oder wenn Sie manuell als ausgeführt werden ansible -m setup <host>) kann oft hängenbleiben, wenn Hardware-Fakten gesammelt werden (z. B. wenn Platteninformationen von Hosts mit hoher I / O, schlechten Mount-Einträgen usw. abgerufen werden).

Lösung: Versuche zu laufen ansible -m setup -a gather_subset=!all <destination>. Wenn dies funktioniert, sollten Sie in Erwägung ziehen, diese Zeile in Ihrer ansible.cfg zu setzen:

gather_subset=!hardware

11
2018-03-03 18:10



Die Übergabe an "gather_subset =! Hardware" zur Einrichtung funktionierte für eine bestimmte VM, die nicht reagierte. - JamesP
Für mich behoben. Dodgy Mount Punkte, denke ich. Ich hatte eine VM, die ich für die Bereitstellung verwendet habe, und es funktionierte, bis ich eine neue NFS-Freigabe hinzufügte. Jetzt ist es nicht, bis ich das obige hinzugefügt habe. - David Boshton
Hat sich in meinem Fall als Host-Key-Problem herausgestellt. Der Host wurde neu erstellt, daher ist mein erster Lauf fehlgeschlagen und ich habe den Vorschlag ausgeführt ssh-keygen -R Befehl, um den fehlerhaften Schlüssel zu entfernen. Ich habe ssh einmal ausgeführt, um den Schlüssel hinzuzufügen, aber der zweite Durchlauf war hängen geblieben. Als ich ssh erneut anrief, erhielt ich die Bestätigung der Schlüsselbestätigung, die unerwartet war. Ich erkannte, dass es einen beleidigenden Schlüssel gibt, der entfernt werden musste, also habe ich nach dem Entfernen und dem erneuten Ausführen von ssh die Warning: Permanently added the ECDSA host key ... Nachricht und dann nur das Sammeln von Fakten fortgesetzt. - haridsv


Für mich war das Setup-Modul-Modul auf einem toten NFS-Mount festgefahren.

Wenn Sie ein "df" auf Ihrem Computer machen und nichts passiert, können Sie sich im selben Fall befinden.

PS: Wenn Sie den NFS-Share / Mountpoint nicht umhängen können, sollten Sie den schlechten "umount -l" verwenden


8
2017-07-31 08:33





Ich hatte ein ähnliches Problem mit Ansible hängen bei Gathering Facts. Ich habe mein Skript auf eine Eingabeaufforderung ohne Aufgaben oder Rollen reduziert und es hing immer noch nicht.

Ich fand 12 hängende Prozesse in meiner Prozessliste, die sich über den Tag angesammelt hatten.

/usr/bin/python /tmp/ansible_Jfv4PA/ansible_module_setup.py
/usr/bin/python /tmp/ansible_M2T10L/ansible_module_setup.py

Sobald ich diese getötet habe, hat es wieder angefangen zu arbeiten.


6
2017-07-26 15:47





Dmytro ist an etwas dran!

Ansible verwendet den FQDN des Hosts. Wenn Ihr Host nicht DNS-auflösbar ist und Sie keine Zuordnung haben /etc/hosts ansible wartet auf das Timeout des DNS.

Beim Hinzufügen ::1 <fqdn> In der Host-Datei der Maschinen, die Sie verbinden, erhält Ansible den FQDN sofort, ohne DNS zu durchlaufen.

Beachten Sie, dass der Host Hosts von suchen sollte /etc/hostsDies ist der Standard für die meisten, wenn nicht alle Linux-Systeme, aber für die Bearbeitung /etc/nsswitch.conf das könnte auch ein Problem sein.


4
2017-11-12 17:48





Ich weiß nicht, ob Sie ein Sudo-Playbook verwenden - aber ich war es, und es hing an dem Sudo-Passwort.

Aus der Dokumentation - Sie können das töten und dann verwenden -K auch.

Viel Glück.


1
2017-11-13 23:50





Möglicherweise hat sich der Fingerabdruck Ihres Zielsystems geändert, z. B. wenn Sie das Server-Betriebssystem neu installieren. Sie müssen die Einträge in löschen bekannte_Hosts, ansible Wille nicht Benachrichtigen Sie, dass ein nicht vertrauenswürdiger Eintrag das Problem ist, es bleibt genau so stecken, wie Sie beschreiben.


1
2018-06-14 19:25





Es klingt, dass ansible nicht authentifizieren kann ... also benutze -k, um ansible nach dem Server-Passwort fragen zu lassen .... wie unten gezeigt:

ansible-playbook  -K -i hosts playbook.yml -vvvv

1
2017-10-05 14:23





FQDN und Hostname stimmen nicht überein kann auch einen Hangout verursachen. Ich habe den FQDN mit einer Domain verwendet, die sich von der Hostname-Domain unterscheidet. Nach dem beide gleich machen, funktioniert gut. Möglicherweise vergleicht ansible FQDN und Hostname vor dem Ausführen von Aufgaben auf dem Remote-Host. Ich hoffe es hilft!


0
2017-08-28 05:51





Ich löste dieses Problem, indem ich die Vagabunden-Box zurücksetzte

vagrant destroy
vagrant up

0
2017-12-14 14:22





In meinem Fall hörte ansible auf, mitten in einer Aufgabe zu arbeiten. Der Grund war, weil mein ssh-Agent aufgehört hat zu arbeiten (ssh-add -l gab nichts zurück). Ich habe alles neu gestartet und es hat wieder funktioniert. Überprüfen Sie, ob Ihr ssh-agent ordnungsgemäß funktioniert (ssh-add -l sollte nicht stecken bleiben).


0
2017-12-07 05:54