Существует спецификация, которую поддерживает множество драйверов, называемая DBRef.
DBRef - это более формальная спецификация для создания ссылок между документами. DBRefs (обычно) включают имя коллекции, а также идентификатор объекта. Большинство разработчиков используют только DBRefs, если коллекция может измениться с одного документа на другой. Если ваша ссылочная коллекция всегда будет одинаковой, рекомендации по руководству, описанные выше, более эффективны.
blockquote>Взято из MongoDB Документация: Модели данных> Ссылка на модель данных> Ссылки на базы данных
Цикл работает только для задачи, к которой он прикреплен. Чтобы обернуть несколько задач в цикл, вам нужно разделить их на другой файл, использовать оператор include для их загрузки, а затем присоединить цикл к этому оператору include.
В твоем случае ничего этого не требуется. Я думаю, что это должно сделать то, что вы ищете, предполагая, что file1.txt содержит список имен файлов, по одному на строку & amp; без расширения файла:
- host: localhost
connection: local
tasks:
- name: Convert each file listed in file1.txt
copy:
dest: "./{{ item | trim }}.json"
content: "{{ lookup('file', item + '.yml') | from_yaml | to_nice_json }}"
with_lines: cat ./file1.txt
connection: local
остановок. Ansible открывает SSH-соединение с локальным хостом. lookup('file', item + '.yml')
читает файл. item
- это имя переменной по умолчанию, которое используется в циклах для хранения содержимого каждого элемента цикла. with_lines
работает только локально, поэтому, если вам нужно выполнить это удаленно, вам нужно будет изменить это [ 119]