我想在 Jinja2 的 Ansible 上下文中包含另一个 Jinja2 模板
I want to include another Jinja2 template in an Ansible context in Jinja2
我有一个设置了很多变量的 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 变量。
这是行不通的。可能是什么问题呢?
您不需要打开 Jinja2 表达式 ({{ ... }}
) 来引用语句中的变量 ({% ... %}
)。可以直接使用变量名:
{% include './templates/' + job + '_steps.j2' %}
我有一个设置了很多变量的 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 变量。
这是行不通的。可能是什么问题呢?
您不需要打开 Jinja2 表达式 ({{ ... }}
) 来引用语句中的变量 ({% ... %}
)。可以直接使用变量名:
{% include './templates/' + job + '_steps.j2' %}