我的剧本调用以下任务:
name: Mytask
template:
src: "path/to/template.j2"
dest: "/dest/file"
mode: '755'
此模板使用变量{{organization}},然后导入带有关键字的jinja宏,并带有上下文
{% for organization in organization _list %}
- name: Loading
include_vars:
file: "{{ config_file_dir }}/{{ organization }}/{{ file_name }}"
name: "platform_file"
{% from 'another_template.j2' import function_name as name with context %}
{{ name(param1, param2) }}
{% endfor %}
最后是导入的jinja宏,在这里我在尝试打印时得到了一个未定义的变量{{organization}}。
{% macro function_name(param1, param2) %}
{{ organization|pprint }}
{% endmacro %}
变量是在传递到第一个模板时定义的,但它不遵循该模板内的导入,这与包含上下文的问题相同。
我在2.9.21和Python 2.7.12版本中运行ansible(需要Python 2.7作为与Python 3不兼容的库(
升级python和ansible 后解决