
Extending Puppet
By :

Functions are an important area where we can extend Puppet. They are used when Puppet parses our manifests and can greatly enhance our ability to fetch data from custom sources, filter, and manipulate it.
We can distribute a function just by placing a file at lib/puppet/parser/<function_name>.rb
in a module of ours.
Even if they are automatically distributed to all our clients, it's important to remember that being used only during the catalog compilation, functions are needed only on the Puppet Master.
Note that since they are loaded in the memory when Puppet starts, if we change a function on the Master, we have to restart its service in order to load the latest version.
There are two kinds of functions:
:rvalue
functions return a value, they are typically assigned to a variable or a resource argument. Sample core rvalue
functions are template
, hiera
, regsubst
, versioncmp
, and inline_template
.
:statement
functions perform an action without returning any value. Samples...
Change the font size
Change margin width
Change background colour