Я отправляю файл конфигурации для тысяч узлов, из-за некоторых настроек может быть 5 или 6 путей к этому файлу (есть только один файл для хоста, но путь может варьироваться), и нет простого способа выяснить местоположение по умолчанию с фактами.
Исходя из этого, я ищу способ установить «назначение» модуля копирования, как мы можем установить «src», с помощью with_first_found
цикл.
Что-то такое:
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 по умолчанию, это будет намного проще.
РЕДАКТИРОВАТЬ 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}}"