Custom functions
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
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 corervalue
functions aretemplate
,hiera
,regsubst
,versioncmp
, andinline_template
.:statement
functions perform an action without returning any value. Samples...