Ansibleがホームディレクトリに.retryファイルを作成しないようにするにはどうすればよいですか?


152

Ansibleがホストに対してプレイの実行に問題がある場合、ホストの名前を「.retry」で終わるユーザーのホームディレクトリ内のファイルに出力します。これらは使用されないことが多く、混乱を招くだけです。それらをオフにするか、別のディレクトリに配置する方法はありますか?

回答:


192

ansible.cfgファイルの[defaults]セクションに追加できるオプションが2つあります。これらのオプションは、.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
注:これはのみAnsible 1.9以降で動作していること:github.com/ansible/ansible/commit/...
hudolejev

4
再試行ファイルはAnsible 2.8から始まるデフォルトで作成されていないことに注意してください:docs.ansible.com/ansible/latest/porting_guides/...
スラヴァSemushin

62

ansible構成ファイルを変更することで、ansibleでの再試行ファイルの作成を無効にできます。

[defaults]
...
retry_files_enabled = False

Ansibleは次のように構成ファイルを探します

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

必ず適切な構成ファイルに変更を追加してください。


9

環境変数ANSIBLE_RETRY_FILES_ENABLED0次のように設定して、再試行ファイルをオフにすることもできます。

$ ANSIBLE_RETRY_FILES_ENABLED=0 ansible-playbook ...

1

面白いことに、リトライファイルで同様の問題がありましたが、チーム全体で作業しているため、構成には触れません。

代わりに、プレイブック内から実行の一部として再試行ファイルを削除することにしました。

#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"

特にチームでは、一般的で健全な構成を使用する方が、この方法で回避するよりもはるかに優れていると思います。
Axel Beckert

1
あなたが正しいです。これは、きちんとそれができる時のために間違いなくありません。チームに他の27人がいて、10人のマネージャーの下で7つの異なるチームにいるとき、それは絶望から成長しました...
Lefty G Balogh

-1

デフォルトansible.cfgファイルの行のコメントを解除して

retry_files_enabled = True
retry_files_save_path = ~/.ansible-retry

これは混乱を別の場所に移動するだけです。
Axel Beckert
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.