2017-04-06 3 views
3

Ich verwende derzeit Ansible, um Bare-Metal über eine lokale IPv6-Link-Adresse bereitzustellen. Sobald die Server bereitgestellt sind, führt ansible eine Reihe von Tests auf dem Server als einen Shell-Befehl aus, um sicherzustellen, dass die Bereitstellung erfolgreich war. Diese Tests dauern ungefähr 10 Minuten.Timeout des SSH-Befehls in Ansible erhöhen

Das Problem, mit dem ich konfrontiert bin, ist, dass die Verbindung Timeout scheint, bevor der Befehl abgeschlossen wird.

Hier ist der Fehler von ansible:

fatal: [fe80::5054:ff:XXXX:XXXX%eth0]: UNREACHABLE! => { 
    "changed": false, 
    "msg": "Failed to connect to the host via ssh: Shared connection to fe80::5054:ff:XXXX:XXXX%eth0 closed.\r\n", 
    "unreachable": true 
} 

Durch zu diesem Fehler sucht, könnte man denken, es ist ein Problem mit der SSH-Verbindung. Die SSH-Verbindung selbst ist gut, da vor dieser Aufgabe mehrere andere Tasks erfolgreich auf demselben Host ausgeführt werden.

Wie kann ich das Zeitlimit erhöhen, damit Ansible auf den Abschluss des Befehls wartet? Kann dieses Zeitlimit innerhalb der Ansible-Konfiguration erhöht werden, oder muss ich den Befehl selbst ändern, um das Zeitlimit zu erhöhen?

+0

Ich glaube nicht, dass Ihr Problem in SSH Sitzung Timeout ist. Bitte geben Sie Ihren Code ein. – techraf

Antwort

2

Sie werden die Aufgabe asynchron ausführen wollen. High-Level-Stufen wären:

  1. Sendebereitstellungsanforderung zum Beispiel
  2. eine Art Instanz oder Anforderungs-ID erhält für Anfrage sagte
  3. Umfrage für Ergebnis der Anfrage
  4. weiterhin Textbuch

Hier ist ein Beispiel für dieses Verhalten von official docs

- name: 'YUM - fire and forget task' 
    yum: 
    name: docker-io 
    state: installed 
    async: 1000 
    poll: 0 
    register: yum_sleeper 

- name: 'YUM - check on fire and forget task' 
    async_status: 
    jid: "{{ yum_sleeper.ansible_job_id }}" 
    register: job_result 
    until: job_result.finished 
    retries: 30 
0

Ich hatte fast das gleiche Problem und -vvv gab mir nicht viele Informationen. Aber das Überprüfen des Syslogs in dem Gast zeigte mir, dass ich nicht genügend Speicher hatte, wenn ich das ansible Skript ausführte. Es wäre gut, wenn Sie den Syslog-Eintrag sehen könnten, um zu sehen, ob Sie Probleme mit dem Gast haben, wenn Sie ansible-Skript ausführen.

Verwandte Themen