Skip to content

Instantly share code, notes, and snippets.

@acataluddi
Forked from halberom/opt1_template.j2
Created May 6, 2021 15:11
Show Gist options
  • Save acataluddi/f59cb53da5c2d9a0f131988f4f027eb3 to your computer and use it in GitHub Desktop.
Save acataluddi/f59cb53da5c2d9a0f131988f4f027eb3 to your computer and use it in GitHub Desktop.
ansible - example of template if else
{# style 1 - long form #}
{% if filepath == '/var/opt/tomcat_1' %}
{% set tomcat_value = tomcat_1_value %}
{% else %}
{% set tomcat_value = tomcat_2_value %}
{% endif %}
{# style 2 - short form #}
{% set tomcat_value = tomcat_1_value if (filepath == '/var/opt/tomcat_1') else tomcat_2_value %}
{# style 3 - with ternary filter #}
{% set tomcat_value = (filepath == '/var/opt/tomcat_1')|ternary(tomcat_1_value, tomcat_2_value) %}
<Server port={{ tomcat_value }} shutdown="SHUTDOWN">
---
- hosts: foo
vars:
tomcat_1_value: 'bob'
tomcat_2_value: 'bar'
tasks:
# style 1 using filter
- set_fact:
tomcat_value: "{{ (filepath == '/var/opt/tomcat_1') | ternary(tomcat_1_value, tomcat_2_value) }}"
# style 2
- set_fact:
tomcat_value: "{{ tomcat_1_value if (filepath == '/var/opt/tomcat_1') else tomcat_2_value }}"
- template:
...
<Server port={{ tomcat_value }} shutdown="SHUTDOWN">
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment