鉴于多变的结构
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
。)