How to set a variable using dynamic inventory using Ansible

597 views Asked by At

I am looking for method to set a variable in ansible playbook using inventory information received from dynamic inventory.

For example if we have a sample playbook like

---
- hosts: localhost
  connection: local

  tasks:
   - set_fact: rds_hostname="{{ rds_mysql }}" #set rds endpoint from ec2.py

   - debug: var=rds_hostname 

I am able to get the endpoint when I run the plain ec2.py script as

"rds_mysql":{

"rds_mysql.shdahfiahfa.us-easy-1.rds.amazon.com" }

However I wish to set rds_hostname as the endpoint recieved from dynamic_inventory.

Can any one point out my mistake. Thank you

1

There are 1 answers

0
Rahul Mehrotra On BEST ANSWER

I was able to solve my above problem by using something like this

  • set_fact: rds_hostname="{{ groups.rds_mysql[0] }}"

Also during my research I found a nice ansible galaxy code which allows you to dump all variables accessible to ansible-playbooks

https://galaxy.ansible.com/list#/roles/646

Hope this helps someone :)