Как вы мешаете Ansible создавать файлы .retry в домашнем каталоге?

152

Когда Ansible испытывает проблемы с запуском игр против хоста, он выводит имя хоста в файл в домашнем каталоге пользователя, заканчивающийся на «.retry». Они часто не используются и просто вызывают беспорядок, есть ли способ отключить их или поместить в другой каталог?

Асфанд Кази
источник

Ответы:

192

Есть два параметра, которые вы можете добавить в раздел [defaults] файла ansible.cfg, который будет контролировать, создаются ли файлы .retry и где они создаются.

[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)
Асфанд Кази
источник
8
Обратите внимание , что это работает только для анзибля 1.9 и новее: github.com/ansible/ansible/commit/...
hudolejev
4
Обратите внимание, что повторные файлы по умолчанию не создаются, начиная с Ansible 2.8: docs.ansible.com/ansible/latest/porting_guides/…
Слава
62

Вы можете отключить создание файла повтора в ansible, изменив файл конфигурации ansible.

[defaults]
...
retry_files_enabled = False

Ansible ищет файл конфигурации следующим образом

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

Обязательно добавьте свои изменения в соответствующий файл конфигурации.

AnshBikram
источник
9

Вы также можете отключить повторные файлы, установив переменную окружения ANSIBLE_RETRY_FILES_ENABLEDв 0:

$ ANSIBLE_RETRY_FILES_ENABLED=0 ansible-playbook ...
Томас Томечек
источник
1

Как ни странно, у меня была похожая проблема с файлом повторов, но, поскольку я работаю со всей командой, я бы предпочел не трогать конфигурацию.

Вместо этого я решил удалить файл (ы) повтора как часть прогона из 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"
Левша Дж Балог
источник
Я думаю, особенно в команде, использование обычного и нормального конфига гораздо лучше, чем обходить его таким образом, что также является своего рода конфигом, но менее очевидным.
Аксель Бекерт
1
Ты прав. Это определенно не для тех времен, когда вы можете сделать это правильно. Это вылилось в отчаяние, когда в команде есть еще 27 человек в 7 разных командах под 10 разными менеджерами ...
Левша Дж. Балог
-1

Раскомментируйте строки в ansible.cfgфайле по умолчанию

retry_files_enabled = True
retry_files_save_path = ~/.ansible-retry
Sarangz
источник
Это только перемещает беспорядок в другом месте.
Аксель Бекерт