Я пытаюсь выполнить файл yml, чтобы найти доступный путь, который соответствует моему шаблону на разных хостах (2 хоста в группе) в моем файле инвентаризации, но вывод поступает только с одного сервера за раз, то есть, если я запускаю команда ansible -playbook выдает мне выходные данные с первого хоста, и если я снова запускаю ansible -playbook, немедленно выводится только информация о втором хосте. Если я не использую опцию Delegate_to: localhost , файл создается на каждом сервере индивидуально вместе с найденным путем, который является абсолютно правильным.
- name: files
hosts: all
tasks:
- name: find the files
find:
paths: /home/osboxes
patterns: "*.yaml"
recurse: yes
register: results
- name: output the files
template:
src: files.j2
dest: /home/osboxes/output.txt
owner: osboxes
group: osboxes
mode: 0644
delegate_to: localhost
Если я запускаю в первый раз первый хост в выводе товарных запасов отображает. Если я запускаю его во второй раз, он перезаписывает выходные данные вторым сервером, но они не добавляются. Я попытался выполнить обновление с помощью модуля lineinfile, но он также не работает.
Если я изменяю шаблон jinja2 и что-то подобное происходит, брат
[osboxes@ansiblecontroller project1]$ cat output.txt
Hostnameosboxes1
/home/osboxes/a.yaml
/home/osboxes/b/acd.yaml
/home/osboxes/sample/test/and.yaml
Hostnameosboxes2
/home/osboxes/a.yaml
/home/osboxes/b/acd.yaml
/home/osboxes/sample/test/and.yaml
Hostnameosboxes1 и Hostnameosboxes2 содержит ту же директорию с сервера hostnameosboxes1.
Во второй раз это происходит
[osboxes@ansiblecontroller project1]$ cat output.txt
Hostnameosboxes1
/home/osboxes/testing/ansible/hello.yaml
/home/osboxes/testing/simple/hello1.yaml
Hostname1osboxes2
/home/osboxes/testing/ansible/hello.yaml
/home/osboxes/testing/simple/hello1.yaml
Hostnameosboxes1 и Hostnameosboxes2 содержит один и тот же каталог с сервера hostnameosboxes2.
Мой Jinjatemplate выглядит следующим образом
{{ansible_host}}
{% for file in results['files'] %}
{{ file['path'] }}
{% endfor %}