ansible.builtin.template lookup – retrieve contents of file after templating with Jinja2

Note

This lookup plugin is part of ansible-core and included in all Ansible installations. In most cases, you can use the short plugin name template even without specifying the collections: keyword. However, we recommend you use the FQCN for easy linking to the plugin documentation and to avoid conflicting with other collections that may have the same lookup plugin name.

New in version 0.9: of ansible.builtin

Synopsis

  • Returns a list of strings; for each template in the list of templates you pass in, returns a string containing the results of processing that template.

Parameters

Parameter

Comments

_terms

string

list of files to template

comment_end_string

string

added in 2.12 of ansible.builtin

The string marking the end of a comment statement.

comment_start_string

string

added in 2.12 of ansible.builtin

The string marking the beginning of a comment statement.

convert_data

boolean

Whether to convert YAML into data. If False, strings that are YAML will be left untouched.

Mutually exclusive with the jinja2_native option.

Choices:

  • no

  • yes ← (default)

jinja2_native

boolean

added in 2.11 of ansible.builtin

Controls whether to use Jinja2 native types.

It is off by default even if global jinja2_native is True.

Has no effect if global jinja2_native is False.

This offers more flexibility than the template module which does not use Jinja2 native types at all.

Mutually exclusive with the convert_data option.

Choices:

  • no ← (default)

  • yes

template_vars

dictionary

added in 2.3 of ansible.builtin

A dictionary, the keys become additional variables available for templating.

Default: {}

variable_end_string

string

added in 2.8 of ansible.builtin

The string marking the end of a print statement.

Default: “}}”

variable_start_string

string

added in 2.8 of ansible.builtin

The string marking the beginning of a print statement.

Default: “{{“

Examples

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

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

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

Return Values

Common return values are documented here, the following are the fields unique to this lookup:

Key

Description

_raw

list / elements=any

file(s) content after templating

Returned: success

Authors

  • Michael DeHaan

Hint

Configuration entries for each entry type have a low to high priority order. For example, a variable that is lower in the list will override a variable that is higher up.