Comment empêcher Ansible de créer des fichiers .retry dans le répertoire personnel?

152

Quand Ansible a des problèmes pour exécuter des jeux sur un hôte, il affichera le nom de l'hôte dans un fichier du répertoire personnel de l'utilisateur se terminant par «.retry». Ceux-ci ne sont souvent pas utilisés et ne font que créer du désordre, existe-t-il un moyen de les désactiver ou de les placer dans un répertoire différent?

Asfand Qazi
la source

Réponses:

192

Il existe deux options que vous pouvez ajouter à la section [par défaut] du fichier ansible.cfg qui contrôlera si les fichiers .retry sont créés ou non et où ils sont créés.

[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
la source
8
Notez que cela ne fonctionne que pour Ansible 1.9 et plus récent: github.com/ansible/ansible/commit/…
hudolejev
4
Notez que les fichiers de nouvelle tentative ne sont pas créés par défaut à partir d'Ansible 2.8: docs.ansible.com/ansible/latest/porting_guides/…
Slava Semushin
62

Vous pouvez désactiver la création du fichier de nouvelle tentative dans ansible en modifiant le fichier de configuration ansible.

[defaults]
...
retry_files_enabled = False

Ansible recherche le fichier de configuration comme suit

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

Assurez-vous d'ajouter vos modifications au fichier de configuration approprié.

AnshBikram
la source
9

Vous pouvez également désactiver les fichiers de nouvelle tentative en définissant une variable d'environnement ANSIBLE_RETRY_FILES_ENABLEDsur 0:

$ ANSIBLE_RETRY_FILES_ENABLED=0 ansible-playbook ...
Tomas Tomecek
la source
1

Assez drôle, j'ai eu un problème similaire avec le fichier de nouvelle tentative, mais comme je travaille avec toute une équipe, je préfère ne pas toucher à la configuration.

Ce que j'ai décidé de faire à la place était de supprimer le (s) fichier (s) de nouvelle tentative dans le cadre de l'exécution depuis le playbook:

#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"
Lefty G Balogh
la source
Je pense que surtout dans une équipe, utiliser une configuration commune et saine est bien meilleure que de la contourner de cette façon, ce qui est aussi un peu config, mais moins évident.
Axel Beckert le
1
Vous avez raison. Ce n'est certainement pas pour les moments où vous pouvez le faire correctement. C'est né du désespoir quand vous avez 27 autres personnes dans l'équipe dans 7 équipes différentes sous 10 managers différents ...
Lefty G Balogh
-1

Décommentez les lignes du ansible.cfgfichier par défaut pour

retry_files_enabled = True
retry_files_save_path = ~/.ansible-retry
Sarangz
la source
Cela ne fait que déplacer le désordre ailleurs.
Axel Beckert le