¿Cómo resolver "E405: Las tareas de paquetes remotos deberían tener un reintento" en Ansible?

7

E405 v4.0.0 Las tareas del paquete remoto deben volver a intentarse Las operaciones del paquete no son confiables ya que requieren comunicación de red y la disponibilidad de servidores remotos. Para mitigar los posibles problemas, los reintentos deben usarse a través de register: my_result y hasta: my_result | éxito

Esto aparece cuando se ejecuta ansible-lintcomo el siguiente error:

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

Dado el código de muestra:

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

¿Cómo resolver esto?

030
fuente

Respuestas:

8

ansible-lintLa advertencia 405puede ser bastante irritante como en ciertos casos, es decir, cuando se ejecuta localmente, es muy poco probable que volver a intentarlo haga alguna diferencia. En realidad, resolverlo normalmente es simplemente un caso de agregar lo siguiente:

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

Cuando esto se agrega a la tarea, Ansible volverá a intentarlo diez veces con un retraso de dos segundos entre cada intento hasta que returncodesea 0.

Richard Slater
fuente
2
Me parece una regla extremadamente delicada ... hay algunos casos en los que sería bueno tener esto, pero en el mundo real creo que he visto esto en tareas relacionadas con paquetes tal vez <1% del tiempo. Es por eso que abrí 405 Las tareas de paquetes remotos deberían tener un reintento, ¿demasiado complicado?
geerlingguy
No creo que sea demasiado quisquilloso: a menudo encuentro líneas adicionales solo para apaciguar Ansible-lint en lugar de ofrecer valor, esto parece incorrecto. Reintentar por defecto parece razonable.
Richard Slater
1% es un gran número si realiza las operaciones numéricas durante una implementación. Incluso 1/1000 sería lo suficientemente alto como para solicitar una lógica de reintento. No olvide el factor de multiplicación y el costo de una falla.
sorin