I have this Ansible inventory file:
[fileservers]
fs01.example.com ansible_ssh_host=192.168.1.1 ip_addr=192.168.1.1
[dbservers]
db01.example.com ansible_ssh_host=192.168.1.2 ip_addr=192.168.1.2
[webservers]
web01.example.com ansible_ssh_host=192.168.1.3 ip_addr=192.168.1.3
[cmsservers]
cms01.example.com ansible_ssh_host=192.168.1.4 ip_addr=192.168.1.4
What I want to do is be able to set some facts that contain the host aliases when I run this playbook on my web01.example.com server:
- name: create alias facts
set_fact:
file_server_alias: hostvars[{{ inventory_hostname }}][‘groups’][‘fileservers’][0] # should get string ‘fs01.example.com’
db_server_alias: hostvars[{{ inventory_hostname }}][‘groups’][‘dbservers’][0] # should get string ‘db01.example.com’
cms_server_alias: hostvars[{{ inventory_hostname }}][‘groups’][‘cmsservers’][0] # should get string ‘cms01.example.com’
However, when I do the above, file_server_alias just gets set to ‘hostvars[{{ inventory_hostname }}][‘groups’][‘fileservers’][0]’, and so on. Is there any way to assign these inventory group aliases to variables?
Thanks.