¿Cómo evita que Ansible cree archivos .retry en el directorio de inicio?

152

Cuando Ansible tiene problemas para ejecutar juegos contra un host, mostrará el nombre del host en un archivo en el directorio de inicio del usuario que termina en '.retry'. Estos a menudo no se usan y solo causan desorden, ¿hay alguna forma de desactivarlos o colocarlos en un directorio diferente?

Asfand Qazi
fuente

Respuestas:

192

Hay dos opciones que puede agregar a la sección [valores predeterminados] del archivo ansible.cfg que controlará si se crean o no archivos .retry y dónde se crean.

[defaults]
...
retry_files_enabled = True  # Create them - the default
retry_files_enabled = False # Do not create them

retry_files_save_path = "~/" # The directory they will go into
                             # (home directory by default)
Asfand Qazi
fuente
8
Tenga en cuenta que esto solo funciona para Ansible 1.9 y versiones
hudolejev
44
Tenga en cuenta que los archivos de reintento no se crean de manera predeterminada a partir de Ansible 2.8: docs.ansible.com/ansible/latest/porting_guides/…
Slava Semushin
62

Puede deshabilitar la creación del archivo de reintento en ansible modificando el archivo de configuración ansible.

[defaults]
...
retry_files_enabled = False

Ansible busca el archivo de configuración de la siguiente manera

  1. ./ansible.cfg
  2. ~ / .ansible.cfg
  3. /etc/ansible/ansible.cfg

Asegúrese de agregar sus cambios al archivo de configuración apropiado.

AnshBikram
fuente
9

También puede desactivar los archivos de reintento configurando una variable de entorno ANSIBLE_RETRY_FILES_ENABLEDpara 0:

$ ANSIBLE_RETRY_FILES_ENABLED=0 ansible-playbook ...
Tomás Tomecek
fuente
1

Curiosamente, tuve un problema similar con el archivo de reintento, pero como estoy trabajando con todo un equipo, prefiero no tocar la configuración.

Lo que decidí hacer en su lugar fue eliminar los archivos de reintento como parte de la ejecución desde el libro de jugadas:

#Clean up the admin node - basic housekeeping
- hosts:
  - admin
  gather_facts: no

  tasks:
  - name: remove retry file
    file:
      path: "{{ item }}"
      state: absent
    with_fileglob:
      - "{{playbook_dir}}/*.retry"
Zurdo G Balogh
fuente
Creo que especialmente en un equipo, usar una configuración común y sana es mucho mejor que trabajar de esta manera, lo que también es un poco config, pero menos obvio.
Axel Beckert
1
Tienes razón. Esto definitivamente no es para los momentos en que puedes hacerlo correctamente. Surgió de la desesperación cuando tienes otras 27 personas en el equipo en 7 equipos diferentes bajo 10 gerentes diferentes ...
Lefty G Balogh hace
-1

Descomente las líneas en el ansible.cfgarchivo predeterminado para

retry_files_enabled = True
retry_files_save_path = ~/.ansible-retry
Sarangz
fuente
Esto solo mueve el desorden a otra parte.
Axel Beckert