Ansible: Цикл по шаблону со связанными переменными

Ansible: Цикл по шаблону со связанными переменными

Учитываяпеременнаясостав

syncjobs:
  - filename: output1.bash
    content: data1
  - filename: output2.bash
    content: data2

Я хочу зациклить его, создав файлы с помощьюansible.встроенный.шаблониспользуя полеимя файладляместо назначенияЯ могу добиться этого с помощью

- name: Create scripts
  ansible.builtin.template:
    src: template.bash.j2
    dest: /opt/bin/{{ item.filename }}
    owner: root
    mode: "u+x,o-r"
    backup: true
  with_items: "{{ syncjobs }}"

Однако я не могу понять, как решить эту конкретную проблему.содержаниеполе отsyncjobsdict в файле шаблона. Конечно, я могу получить доступ к переменнойsyncjobs, но мне нужно обратиться ксодержаниеполе из связанногословарьдля каждой конкретной итерации.

Я попытался установить дополнительный факт, напримертекущее_имя_файлакitem.имя_файлавнутриansible.встроенный.блок, но, к сожалению, циклы, похоже, не поддерживаются для блоков.

решение1

Точно так же, как в плейбуке. {{ item }}В шаблоне есть та же переменная, поэтому вы можете ссылаться на нее {{ item.content }}в файле шаблона. (На самом деле,всепеременные книги сценариев доступны в шаблоне, точно такой же набор, который существует в том конкретном месте книги сценариев, где был ansible.builtin.templateвызван.)

Связанный контент