我想在Jinja2的Ansible上下文中包含另一个Jinja2模板

时间:2017-03-13 09:18:48

标签: ansible jinja2 ansible-template

我有一个Ansible手册,它设置了很多变量。一个剧本有这个任务:

- name: create config file 
  template:
    src: 'templates/main_config.j2'
    dest: "{{ tmp_dir }}/main_config.json"

模板main_config.j2在父Ansible手册和任务中写入被定义为变量的字符串。

我想根据Ansible变量的值包含另一个Jinja2模板。

{% include "./templates/configurations.j2" %}, 
{% include "./templates/security.j2" %},
{% include './templates/' + {{ job }} + '_steps.j2' %}

job是在父级剧本中设置的Ansible变量。

这不起作用。可能是什么问题呢?

1 个答案:

答案 0 :(得分:15)

您不需要打开Jinja2表达式({{ ... }})来引用语句中的变量({% ... %})。您可以直接使用变量名称:

{% include './templates/' + job + '_steps.j2' %}