Skip to content

Instantly share code, notes, and snippets.

@joshuaconner
Created December 3, 2013 03:15
Show Gist options
  • Save joshuaconner/7763339 to your computer and use it in GitHub Desktop.
Save joshuaconner/7763339 to your computer and use it in GitHub Desktop.
env-or-else with Ansible... possible?
---
- name: test jinja2 default filter
hosts: localhost
gather_facts: False
tasks:
- name: debug
debug: msg="{{ lookup('env', 'UNDEFINED_THING')|default('foo') }}"
$ ansible-playbook -i hosts playbook1.yml
PLAY [test jinja2 default filter] *********************************************
TASK: [debug] *****************************************************************
ok: [localhost] => {
"msg": ""
}
PLAY RECAP ********************************************************************
localhost : ok=1 changed=0 unreachable=0 failed=0
---
- name: test jinja2 default filter
hosts: localhost
gather_facts: False
tasks:
- name: debug
debug: msg="{{ undefined_variable|default('foo') }}"
$ ansible-playbook -i hosts playbook2.yml
PLAY [test jinja2 default filter] *********************************************
TASK: [debug] *****************************************************************
ok: [localhost] => {
"msg": "foo"
}
PLAY RECAP ********************************************************************
localhost : ok=1 changed=0 unreachable=0 failed=0
@joshuaconner
Copy link
Author

The solution, FYI:


---
- name: test jinja2 default filter
  hosts: localhost
  gather_facts: False
  tasks:
    - name: debug
      debug: msg="{{ lookup('env', 'UNDEFINED_VARIABLE') or 'foo' }}"

Thanks to Zart in #ansible for the help!

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