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

Учитывая структуру переменных

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

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

      - 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 }}"

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

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

1 ответ

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

Другие вопросы по тегам