How to create and access dictionary variables in ansible playbook

Create a ansible config file as ansible.cfg file in your directory:

[defaults]
inventory = hosts 

Create a hosts file as hosts in the same directory


[webservers]
ansnode1 ansible_ssh_host=192.168.56.202 ansible_python_interpreter=/usr/bin/python
ansnode2 ansible_ssh_host=192.168.56.203 ansible_python_interpreter=/usr/bin/python


[webservers:vars]
ansible_port=22
http_port=8080


[dbservers]
ansnode3 ansible_ssh_host=192.168.56.204 ansible_python_interpreter=/usr/bin/python
ansnode4 ansible_ssh_host=192.168.56.205 ansible_python_interpreter=/usr/bin/python

[dev:children]
webservers
dbservers

Create a dictionary variables in playbook as dict_variables_playbook.yaml


---
# YAML documents begin with the document separator ---
# The minus in YAML this indicates a list item. The Playbook contains a list
# of plays, with each play being a dictionary
- name: 'create and access variables inside the playbook'
# Target: where our play will run and options it will run with
hosts: webservers
gather_facts: false

# Variable: variables that will apply to the play, on all target systems
vars:
dict:
dict_key: This is a dictionary variable value

# Task: the list of tasks that will be executed within the playbook
tasks:
– name: Displaying named dictionary dictionary
debug:
msg: “{{ dict }}”
– name: Displaying name dictionary dictionary key value with dictionary dot notation
debug:
msg: “{{ dict.dict_key }}”
– name: Displaying named dictionary dictionary key value with python backets notation
debug: “{{ dict[‘dict_key’]}}”

# Three dots indicate the end of a YAML document

Full Source Code Also Available in : https://github.com/tamiltutera/example-ansible-variables

Leave a Reply

Your email address will not be published. Required fields are marked *