- AnsibleFest
- Products
- Community
- Webinars & Training
- Blog

Documentation

# Templating (Jinja2)

As already referenced in the variables section, Ansible uses Jinja2 templating to enable dynamic expressions and access to variables. Ansible greatly expands the number of filters and tests available, as well as adding a new plugin type: lookups.

Please note that all templating happens on the Ansible controller before the task is sent and executed on the target machine. This is done to minimize the requirements on the target (jinja2 is only required on the controller) and to be able to pass the minimal information needed for the task, so the target machine does not need a copy of all the data that the controller has access to.

Topics

- Templating (Jinja2)

- Filters
  - Filters For Formatting Data
  - Forcing Variables To Be Defined
  - Defaulting Undefined Variables
  - Omitting Parameters
  - List Filters
  - Set Theory Filters
  - Random Number Filter
  - Shuffle Filter
  - Math
  - JSON Query Filter
  - IP address filter
  - Network CLI filters
  - Hashing filters
  - Combining hashes/dictionaries
  - Extracting values from containers
  - Comment Filter
  - URL Split Filter
  - Regular Expression Filters
  - Other Useful Filters
  - Combination Filters
  - Debugging Filters
- Tests
  - Testing strings
  - Version Comparison
  - Group theory tests
  - Testing paths
  - Task results
- Lookups
  - Intro to Lookups: Getting File Contents
  - The Password Lookup
  - The Passwordstore Lookup
- Examples
  - The CSV File Lookup
  - The INI File Lookup
  - The Credstash Lookup
  - The DNS Lookup (dig)
  - MongoDB Lookup
  - More Lookups
- Python Version and Templating
  - Dictionary Views
  - dict.iteritems()

See also

Playbooks
  An introduction to playbooks
Conditionals
  Conditional statements in playbooks
Loops
  Looping in playbooks
Roles
  Playbook organization by roles
Best Practices
  Best practices in playbooks
User Mailing List
  Have a question? Stop by the google group!
irc.freenode.net
  #ansible IRC chat channel