ansible.builtin.template 查找 – 使用 Jinja2 模板化后检索文件内容

注意

此查找插件是 ansible-core 的一部分,包含在所有 Ansible 安装中。在大多数情况下,您可以使用短插件名称 template。但是,我们建议您使用 完全限定集合名称 (FQCN) ansible.builtin.template,以便轻松链接到插件文档,并避免与其他可能具有相同查找插件名称的集合冲突。

概要

  • 返回字符串列表;对于您传入的模板列表中的每个模板,返回一个包含处理该模板结果的字符串。

术语

参数

注释

术语

字符串

要模板化的文件列表

关键字参数

这描述了查找的关键字参数。这些是以下示例中的值 key1=value1key2=value2 等:lookup('ansible.builtin.template', key1=value1, key2=value2, ...)query('ansible.builtin.template', key1=value1, key2=value2, ...)

参数

注释

comment_end_string

字符串

在 ansible-core 2.12 中添加

标记注释语句结尾的字符串。

默认值: "#}"

comment_start_string

字符串

在 ansible-core 2.12 中添加

标记注释语句开头的字符串。

默认值: "{#"

convert_data

布尔值

是否将 YAML 转换为数据。如果 False,则 YAML 的字符串将保持不变。

jinja2_native 选项互斥。

选项

  • false

  • true ← (默认)

jinja2_native

布尔值

在 ansible-core 2.11 中添加

控制是否使用 Jinja2 原生类型。

即使全局 jinja2_nativeTrue,默认情况下也关闭。

如果全局 jinja2_nativeFalse,则无效。

这比根本不使用 Jinja2 原生类型的 template 模块提供了更大的灵活性。

convert_data 选项互斥。

选项

  • false ← (默认)

  • true

template_vars

字典

一个字典,键将成为可用于模板化的其他变量。

默认值: {}

trim_blocks

布尔值

在 ansible-core 2.19 中添加

确定何时应从块中删除换行符。

设置为 yes 时,将删除块后的第一个换行符(块,而不是变量标记!)。

选项

  • false

  • true ← (默认)

variable_end_string

字符串

在 Ansible 2.8 中添加

标记打印语句结尾的字符串。

默认值: "}}"

variable_start_string

字符串

在 Ansible 2.8 中添加

标记打印语句开头的字符串。

默认值: "{{"

注释

注意

  • 当关键字和位置参数一起使用时,位置参数必须列在关键字参数之前:lookup('ansible.builtin.template', term1, term2, key1=value1, key2=value2)query('ansible.builtin.template', term1, term2, key1=value1, key2=value2)

另请参阅

另请参阅

任务路径

用于相对模板的搜索路径。

示例

- name: show templating results
  ansible.builtin.debug:
    msg: "{{ lookup('ansible.builtin.template', './some_template.j2') }}"

- name: show templating results with different variable start and end string
  ansible.builtin.debug:
    msg: "{{ lookup('ansible.builtin.template', './some_template.j2', variable_start_string='[%', variable_end_string='%]') }}"

- name: show templating results with different comment start and end string
  ansible.builtin.debug:
    msg: "{{ lookup('ansible.builtin.template', './some_template.j2', comment_start_string='[#', comment_end_string='#]') }}"

- name: show templating results with trim_blocks
  ansible.builtin.debug:
    msg: "{{ lookup('ansible.builtin.template', './some_template.j2', trim_blocks=True) }}"

返回值

描述

返回值

列表 / elements=any

模板化后的文件内容

返回: 成功

作者

  • Michael DeHaan

提示

每个条目类型的配置条目具有从低到高的优先级顺序。例如,列表中较低的变量将覆盖较高的变量。