Como você impede o Ansible de criar arquivos .retry no diretório inicial?

152

Quando o Ansible tem problemas ao executar execuções contra um host, ele gera o nome do host em um arquivo no diretório inicial do usuário, terminando em '.retry'. Geralmente, eles não são usados ​​e apenas causam confusão; existe uma maneira de desativá-los ou colocá-los em um diretório diferente?

Asfand Qazi
fonte

Respostas:

192

Há duas opções que você pode adicionar à seção [padrões] do arquivo ansible.cfg que controlará se os arquivos .retry serão ou não criados e onde serão criados.

[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
fonte
8
Observe que isso funciona apenas para o Ansible 1.9 e mais recente: github.com/ansible/ansible/commit/…
hudolejev
4
Note-se que os arquivos de repetição não são criados por padrão a partir de Ansible 2.8: docs.ansible.com/ansible/latest/porting_guides/...
Slava Semushin
62

Você pode desativar a criação do arquivo de repetição no ansible modificando o arquivo de configuração do ansible.

[defaults]
...
retry_files_enabled = False

Ansible procura pelo arquivo de configuração da seguinte maneira

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

Certifique-se de adicionar suas alterações no arquivo de configuração apropriado.

AnshBikram
fonte
9

Você também pode desativar os arquivos de repetição configurando uma variável de ambiente ANSIBLE_RETRY_FILES_ENABLEDpara 0:

$ ANSIBLE_RETRY_FILES_ENABLED=0 ansible-playbook ...
Tomas Tomecek
fonte
1

Engraçado o suficiente, eu tive um problema semelhante com o arquivo de repetição, mas como trabalho com uma equipe inteira, prefiro não tocar na configuração.

O que eu decidi fazer foi remover o (s) arquivo (s) de repetição como parte da execução de dentro do manual:

#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
fonte
Eu acho que especialmente em uma equipe, usar uma configuração comum e sã é muito melhor do que trabalhar dessa maneira, o que também é meio que configuração, mas menos óbvio.
Axel Beckert
1
Você está certo. Definitivamente, não é para momentos em que você pode fazer isso corretamente. Cresceu em desespero quando você tem 27 outras pessoas na equipe em 7 equipes diferentes, sob 10 gerentes diferentes ...
Lefty G Balogh
-1

Remova o comentário das linhas no ansible.cfgarquivo padrão para

retry_files_enabled = True
retry_files_save_path = ~/.ansible-retry
Sarangz
fonte
Isso apenas move a bagunça para outro lugar.
Axel Beckert