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.
- Filters
- Filters For Formatting Data
- Forcing Variables To Be Defined
- Defaulting Undefined Variables
- Omitting Parameters
- List Filters
- Set Theory Filters
- Dict Filter
- items2dict filter
- zip and zip_longest filters
- subelements Filter
- Random Mac Address Filter
- Random Number Filter
- Shuffle Filter
- Math
- JSON Query Filter
- IP address filter
- Network CLI filters
- Network XML 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
- Lookups
- Python Version and Templating
See also
- Working With 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