Creating external pillars
As you know, pillars are like grains, with a key difference: grains are defined on the Minion, whereas pillars are defined for individual Minions, from the Master.
As far as users are concerned, there's not a whole lot of difference here, except that pillars must be mapped to targets on the Master, using the top.sls
file in pillar_roots
. One such mapping might look like this:
# cat /srv/pillar/top.sls base: '*': - test
In this example, we would have a pillar called test defined, which might look like this:
# cat /srv/pillar/test.sls test_pillar: True
Dynamic pillars are still mapped in the top.sls
file, but that's where the similarities end, so far as configuration is concerned.
Configuring external pillars
Unlike dynamic grains, which will run so long as their __virtual__()
function allows them to do so, pillars must be explicitly enabled in the master
configuration file. Or, if running in local mode as we will be, in the minion
configuration file. Let's go...