
Extending Puppet
By :

Hiera provides an interesting function called hiera_include
, which allows you to include all the classes defined for a given key.
This, in practice, exploits the Hiera flexibility to provide classes to nodes as does an External Node Classifier.
It's enough to place in our /etc/puppet/manifests/site.pp
a line like this:
hiera_include('classes')
Then, define in our data sources a classes
key with an array of the classes to include.
In a YAML-based backend, it would look like the following:
--- classes: - apache - mysql - php
This is exactly the same as having something like the following in our site.pp
:
include apache include mysql include php
The classes
key (it can have any name, but classes
is a standard de facto) contains an array, which is merged along the hierarchy. So, in common.yaml
, we can define the classes that we want to include on all our nodes, and include specific classes for specific servers, adding them at the different layers of our hierarchy...
Change the font size
Change margin width
Change background colour