Skip to content

Instantly share code, notes, and snippets.

@halberom
Last active April 12, 2024 11:33
Show Gist options
  • Save halberom/794c06598f40ccc31560 to your computer and use it in GitHub Desktop.
Save halberom/794c06598f40ccc31560 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">
@tranvanthuc
Copy link

Thanks so much! <3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment