How do you stop Ansible from creating .retry files in the home directory?
AnsibleAnsible Problem Overview
When Ansible has problems running plays against a host, it will output the name of the host into a file in the user's home directory ending in '.retry'. These are often not used and just cause clutter, is there a way to turn them off or put them in a different directory?
Ansible Solutions
Solution 1 - Ansible
There are two options that you can add to the [defaults] section of the ansible.cfg file that will control whether or not .retry files are created and where they are created.
[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)
Solution 2 - Ansible
You can disable creation of retry file in ansible by modifying ansible configuration file.
[defaults]
...
retry_files_enabled = False
Ansible looks for configuration file as follows
- ./ansible.cfg
- ~/.ansible.cfg
- /etc/ansible/ansible.cfg
Make sure to add your changes to the appropriate config file.
Solution 3 - Ansible
You can also turn the retry files off by setting an environment variable ANSIBLE_RETRY_FILES_ENABLED
to 0
:
$ ANSIBLE_RETRY_FILES_ENABLED=0 ansible-playbook ...
Solution 4 - Ansible
Funny enough, I had a similar issue with the retry file, but as I am working with a whole team, I'd rather not touch the config.
What I decided to do instead was to remove the retry file(s) as part of the run from within the 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"
Solution 5 - Ansible
Uncomment the lines in the default ansible.cfg
file
to
retry_files_enabled = True
retry_files_save_path = ~/.ansible-retry