Custom faces
With the release of Puppet 2.6, a brand new concept was introduced: Puppet Faces.
Faces is an API that allows the easy creation of new Puppet (sub) commands. Whenever we execute Puppet, we specify at least one command that provides access to the functionalities of its subsystems.
The most common commands are agent
, apply
, master
, and cert
, and have existed for a long time. However, there are a lot more (we can see their full list with puppet help
), and most of them are defined via the Faces API.
As you can guess, we can easily add new faces and, therefore, new subcommands to the puppet executable just by placing some files in a module of ours.
The typical synopsis of the Puppet command is as follows:
puppet [FACE] [ACTION] [ARGUMENTS] [OPTIONS]
Here, [FACE]
is the Puppet subcommand to be executed, [ACTION]
is the face's action we want to invoke, [ARGUMENTS]
are its arguments, and [OPTIONS]
are general Puppet options.
To create a face, we have to work on two files: lib/puppet/application...