How to create and access group_vars and host_vars in ansible playbook?

How to create and access group_vars and host_vars in ansible playbook?

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

[defaults]
inventory = hosts 

Create a hosts file as hosts in the project 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 directory group_vars and host_vars in your project directory

/root/example-ansible-variables/10
├── ansible.cfg
├── external_group_vars_playbook.yml
├── group_vars
│   ├── dbservers
│   └── webservers
├── hosts
└── host_vars
├── ansnode1
└── ansnode2

2 directories, 7 files

 

Create a file called as external_group_vars_playbook.yml


# 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: ansnode4
  gather_facts: true

# Task: the list of tasks that will be executed within the playbook
tasks:
  - name: Displaying groupvars and hostvars from the directory structure
    debug:
      msg: "{{ db_port }}"
# Three dots indicate the end of a YAML document
...

Leave a Reply

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