У меня есть шаблон Jinja2, и я хочу передать ему аргументы из своего vars/main.yml
.
Для каждого набора варов мне нужно создать отдельный файл на удаленном сервере.
Мой vars/main.yml
имеет следующую структуру:
List:
- { src: [
classPath1: xxx,
classPath2: xxx,
contxtHost: xxx,
logDir: xxx,
contxtRegion: xxx,
....
],
dest: xxxx
}
- { src: [
xxxx
],
dest: xxxx
}
в моей пьесе задача определяется следующим образом:
- name: testing templates
template: "src=templates/sampletest.j2
dest=/path/in/Server/{{ item.dest }}
owner=app
group=app
mode=0644"
with_items: '{{ List }}'
Как пройти item.src
к моему шаблону?
Примечание: я пытаюсь создать несколько файлов на основе каждого набора переменных. item.src
и имя файла item.dest
с помощью with_items
.
Просто укажите их в templates/sampletest.j2
, например:
# start of the template
classPath1 is {{ item.src[0].classPath1 }}
classPath2 is {{ item.src[1].classPath2 }}
contxtHost is {{ item.src[2].contxtHost }}
...
# end of the template
По каждому элементу на List
шаблон будет проанализирован и сохранен в файл, определенный в dest
.
Теперь проблема в том, что ваш vars/main.yml
файл определяет src
как список (квадратные скобки) словарей, каждый из которых содержит одну пару ключ-значение (с ключом, названным по-разному в каждом элементе списка), поэтому:
src[1]
)classPath2
для и только для src[1]
).