Wie verhindern Sie, dass Ansible .retry-Dateien im Home-Verzeichnis erstellt?

150

Wenn Ansible Probleme beim Ausführen von Spielen gegen einen Host hat, gibt es den Namen des Hosts in eine Datei im Home-Verzeichnis des Benutzers aus, die auf ".retry" endet. Diese werden oft nicht verwendet und verursachen nur Unordnung. Gibt es eine Möglichkeit, sie auszuschalten oder in ein anderes Verzeichnis zu stellen?

Asfand Qazi
quelle

Antworten:

190

Es gibt zwei Optionen, die Sie dem Abschnitt [Standardeinstellungen] der Datei ansible.cfg hinzufügen können, um zu steuern, ob .retry-Dateien erstellt werden und wo sie erstellt werden.

[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
quelle
7
Beachten Sie, dass dies nur für Ansible 1.9 und neuer funktioniert: github.com/ansible/ansible/commit/…
hudolejev
3
Beachten Sie, dass Wiederholungsdateien nicht standardmäßig ab Ansible 2.8 erstellt werden: docs.ansible.com/ansible/latest/porting_guides/…
Slava Semushin
60

Sie können die Erstellung einer Wiederholungsdatei in ansible deaktivieren, indem Sie die ansible-Konfigurationsdatei ändern.

[defaults]
...
retry_files_enabled = False

Ansible sucht wie folgt nach einer Konfigurationsdatei

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

Stellen Sie sicher, dass Sie Ihre Änderungen zur entsprechenden Konfigurationsdatei hinzufügen.

AnshBikram
quelle
8

Sie können auch die Wiederholungs Dateien deaktivieren , indem Sie eine Umgebungsvariable ANSIBLE_RETRY_FILES_ENABLEDzu 0:

$ ANSIBLE_RETRY_FILES_ENABLED=0 ansible-playbook ...
Tomas Tomecek
quelle
2

Komischerweise hatte ich ein ähnliches Problem mit der Wiederholungsdatei, aber da ich mit einem ganzen Team zusammenarbeite, möchte ich die Konfiguration lieber nicht berühren.

Stattdessen habe ich beschlossen, die Wiederholungsdatei (en) als Teil des Laufs aus dem Playbook zu entfernen:

#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
quelle
0

Kommentar- der Zeilen in der ansible.cfgStandarddatei

retry_files_enabled = True
retry_files_save_path = ~/.ansible-retry
Sarangz
quelle