数千のノードの構成ファイルを送信しています。一部のカスタマイズにより、そのファイルへのパスが 5 つまたは 6 つある可能性があり (ホスト用のファイルは 1 つしかありませんが、パスは異なる可能性があります)、簡単に把握する方法はありません。事実のあるデフォルトの場所。
with_first_found
これに基づいて、ループで「src」を設定できるように、コピーモジュールの「dest」を設定する方法を探しています。
そんな感じ:
copy: src=/foo/{{ ansible_hostname }}/nrpe.cfg dest="{{item}}
with_items:
- "/etc/nagios/nrpe.cfg"
- "/usr/local/nagios/etc/nrpe.cfg"
- "/usr/lib64/nagios/etc/nrpe.cfg"
- "/usr/lib/nagios/etc/nrpe.cfg"
- "/opt/nagios/etc/nrpe.cfg"
PS: nrpe.cfg を送信しているので、誰かがデフォルトの nrpe.cfg を見つけるためのより良い方法を知っていれば、はるかに簡単になります。
EDIT 1 : @ydaetskcoR の助けを借りて、次のように作業することができました。
- name: find nrpe.cfg
stat:
path: "{{ item }}"
with_items:
- "/etc/nagios/nrpe.cfg"
- "/usr/local/nagios/etc/nrpe.cfg"
- "/usr/lib64/nagios/etc/nrpe.cfg"
- "/usr/lib/nagios/etc/nrpe.cfg"
- "/opt/nagios/etc/nrpe.cfg"
register: nrpe_stat
no_log: True
- name: Copy nrpe.cfg
copy: src=/foo/{{ ansible_hostname }}/nrpe.cfg dest="{{item.stat.path}}"
when: item.stat.exists
no_log: True
with_items:
- "{{nrpe_stat.results}}"