我在Ansible中已参数化的templates目录中有一个.jinja2模板集合。
└── roles
├── copyFiles
│ ├── tasks
│ │ └── main.yml
│ └── templates
│ ├── file.one.name.xml.jinja2
│ ├── file.two.name.xml.jinja2
│ ├── file.three.name.xml.jinja2
| ...
我想将文件复制到目标目录。但是,我不想在如下的with_items字典中指定每个单独的Jinja模板。
---
- name: Copy the Configuration templates
template:
src: "templates/{{ item.src }}"
dest: "target/{{ item.dest }}"
owner: "{{ user}}"
group: "{{ group }}"
mode: 0644
with_items:
- { src: 'file.one.name.xml.jinja2', dest: 'file.one.name.xml' }
- { src: 'file.two.name.xml.jinja2', dest: 'file.two.name.xml' }
- { src: 'file.three.name.xml.jinja2', dest: 'file.three.name.xml' }
...
是否有一种方法可以动态地执行模板渲染并将模板复制到目标目录中的任何.jinja2文件?
答案 0 :(得分:1)
我找到了办法。我使用正则表达式使用其相对路径列出了模板目录中的所有文件。然后使用regex_replace构造将用于目标文件的新名称:
create