Wie löse ich "E405: Remote-Paketaufgaben sollten wiederholt werden" in Ansible?


7

E405 v4.0.0 Remote-Paketaufgaben sollten wiederholt werden Paketvorgänge sind unzuverlässig, da sie Netzwerkkommunikation und die Verfügbarkeit von Remote-Servern erfordern. Um mögliche Probleme abzumildern, sollten Wiederholungsversuche über register: my_result und bis: my_result | verwendet werden Erfolg

Dies wird beim Ausführen ansible-lintals folgender Fehler angezeigt:

[405] Remote package tasks should have a retry
plays/sample.yml:31
Task/Handler: Install list of packages

Angesichts des Beispielcodes:

- name: Install list of packages
  apt:
    name: [jq, vim, curl, unzip, dnsutils]
    state: present

Wie kann man das lösen?

Antworten:


8

ansible-lintEine Warnung 405kann wie in bestimmten Fällen sehr irritierend sein, dh wenn lokal versucht wird, ist es sehr unwahrscheinlich, dass ein erneuter Versuch einen Unterschied macht. Um es tatsächlich zu lösen, müssen normalerweise nur die folgenden Elemente hinzugefügt werden:

register: task_result
until: task_result is success
retries: 10
delay: 2

Wenn dies zu Task hinzugefügt wird, versucht Ansible zehnmal mit einer Verzögerung von zwei Sekunden zwischen jedem erneuten Versuch, bis der returncodeist 0.


2
Scheint mir eine extrem pingelige Regel zu sein ... es gibt einige Fälle, in denen dies schön wäre, aber in der realen Welt denke ich, dass ich dies bei paketbezogenen Aufgaben vielleicht <1% der Zeit gesehen habe. Aus diesem Grund habe ich 405 Remote-Paketaufgaben
Geerlingguy

Ich denke nicht, dass es zu wählerisch ist - ich finde meistens, dass ich zusätzliche Zeilen hinzufüge, nur um Ansible-Lint zu beschwichtigen, anstatt Wert zu liefern, das scheint falsch. Standardmäßig erscheint ein erneuter Versuch sinnvoll.
Richard Slater

1% ist eine große Zahl, wenn Sie die Anzahl der Operationen ausführen, die während einer Bereitstellung ausgeführt wurden. Sogar 1/1000 wäre hoch genug, um eine Wiederholungslogik anzufordern. Vergessen Sie nicht den Multiplikationsfaktor und die Kosten eines Fehlers.
Sorin

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.