Ansible:使用相关变量循环模板

Ansible:使用相关变量循环模板

鉴于多变的结构

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

我想循环创建文件ansible.builtin.模板使用字段文件名为了目的地.我可以用

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

但我不知道如何解决具体问题内容来自同步作业模板文件中的 dict。当然我可以访问变量同步作业,但我需要解决内容相关字段字典对于每个特定的迭代。

我尝试设置一个额外的事实,例如当前文件名项目.文件名在里面ansible.builtin.block,但不幸的是循环似乎不支持块。

答案1

与剧本中的方法完全相同。模板中有相同的变量,因此您可以在模板文件中{{ item }}引用。(实际上,{{ item.content }}全部剧本变量在模板中可用,只是与在剧本中调用的特定位置存在的变量相同ansible.builtin.template。)

相关内容