У меня проблемы с вложенным циклом в ansible.
Я использую ansible 2.5.2 со следующими конфигурационными файлами:
файл хосты :
[group1]
host1
host2
host3
[group2]
hostA
file host_vars / host {N} (где N - номер каждого хоста в группе 1):
variable:
- { line: "keyB" , file: "keyc"}
- { line: "key2" , file: "key3"}
Мне нужно выполнить на hostA одну задачу для каждой строки в host_vars / host {N} .
в псевдокоде, нужно что-то вроде этого:
- name: modify file
for host in groups['group1']:
for item in host['variables']:
lineinfile: "path={{ host }}/{{ item.file }} line={{ item.line }}"
Использование циклов jinja2 не работает:
- name: Modify files
lineinfile: "{% for linea in hostvars[item]['variables'] %}
path={{ item }}/{{ linea.file }}
line={{ linea.line }}
{% endfor %}"
loop: "{{ groups['group1'] }}"
нормальные вложенные циклы также не работают, потому что внутренний цикл зависит от имени хоста:
- name: Modify files
lineinfile: "path={{ item[0] }}/{{ item[1]['file'] }} line={{ item[1]['line'] }}"
with_nested:
- "{{ groups['group1'] }}"
- "{{ hostvars[item[0]]['variables'] }}"
Есть еще один способ прокрутить вложенные циклы?