Basically I am creating a Salt state describing Munin server configuration and I need to get a list of all minions known to the master, something like this:
{% for host in pillar['munin_clients'] %}
[{{ host.fqdn }}]
address {{ host.ip }}
use_node_name yes
{% endfor %}
The only difference is that I don't want to use pillar for that, I need this list to be populated dynamically. ret.get_minions
seems to be relevant but I can't make it work for some reason. What are my options?
I managed to achieve this using Salt Mine system (thanks to members of Salt-users Google group):
{% for host, hostinfo in salt['mine.get']('*', 'network.interfaces').items() %}
[{{ host }}]
address {{ hostinfo['eth0']['inet'][0]['address'] if hostinfo['eth0'].has_key('inet') else hostinfo['br0']['inet'][0]['address'] }}
use_node_name yes
{% endfor %}
I had to add
mine_functions:
network.interfaces: []
to the end of /etc/salt/minion
on every node to enable Salt Mine.