Ansible& Jinja2 - 将模板放在每个变量的目录中

时间:2017-02-14 16:40:03

标签: ansible jinja2

有一个难以描述的问题,我希望感谢您提出改善建议以使这个问题更容易理解。

目标: 首先为单个模板设置变量,然后根据变量集设置目标。基于一个模板。我想避免为每个目录使用多个模板。

示例:my_jinja.j2包含:

a line of code
/path{{ variable }}/something
another line of code

我想在使用variable设置的目录中设置模板。 如果variable包含:

- /tmp
- /var

如果设置了/tmp,则应在/foo

中设置模板

如果设置了/var,我想要放置在/bar

中的模板

/tmp的模板应如下所示:

a line of code
/path/tmp/something
another line of code

1 个答案:

答案 0 :(得分:2)

值得一试:

模板:

a line of code
/path{{ path_var }}/something
another line of code

变种:

my_list:
  - path: /tmp
    dest: /foo
  - path: /var
    dest: /bar

任务:

- template:
    src: my_jinja.j2
    dest: "/path/to/{{ item.dest }}"
  vars:
    path_var: "{{ item.path }}"
  with_items: "{{ my_list }}"