Я отправляю конфигурационный файл для тысяч узлов, из-за некоторой настройки есть, возможно, 5 или 6 путей к этому файлу (есть только один файл для хоста, но путь может меняться) и нет простого способа определить местоположение по умолчанию с фактами.Ansible send file to first met destination
Исходя из этого, я ищу способ установить «dest» модуля копирования, как мы можем установить «src», с with_first_found
loop.
Нечто подобное:
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}}"
Здравствуйте @ydaetskcoR, это на самом деле то, что я делаю прямо сейчас, но я пытаюсь найти решение без оболочки, поэтому я мог бы использовать --check –
Я добавил первый удар по тому, что вам может понадобиться для использования stat вместо этого, но у вас нет времени проверить его, а затем настроить его, чтобы он работал. Если вы можете самостоятельно разобраться в этом, тогда не стесняйтесь предлагать редактирование, иначе я попробую еще раз взглянуть на это, когда у меня будет свободное время. – ydaetskcoR
Спасибо за помощь. Я редактировал свой пост, чтобы поделиться своими последними усилиями. Проблема теперь в том, что -diff больше не работает –