Ansible example – get dictionary value


Here is a quick sample to show how Ansible can get the value from a dictionary:

– hosts: localhost
vars:
accounts:
dev:
account: 123
contact: Jackie@123.com
uat:
account: 456
contact: Jackie@456.com
prd:
account: 789
contact: Jackie@789.com
gather_facts: no
tasks:
– name: Find account information method 1
debug:
msg: "{{ env }} account number is {{ item.value.account }}, contact email is {{ item.value.contact }}"
loop: "{{ lookup('dict', accounts) }}"
when: "env in item.key"
– name: Find account information method 2
debug:
msg: "{{ env }} account number is {{ accounts[env].account }}, contact email is {{ accounts[env].contact }}"
view raw accounts.yaml hosted with ❤ by GitHub

To test it:

ansible-playbook accounts.yaml -e env=dev

One thought on “Ansible example – get dictionary value

  1. This is the first time I’ve come across this simple construction:
    – name: Find account information method 2
    debug:
    msg: “{{ env }} account number is {{ accounts[env].account }}

    Very helpful. Thank you!

Leave a comment