This module provides alternative providers for core Puppet types such as
mailalias using the Augeas configuration library. It also adds
some of its own types for new functionality.
The advantage of using Augeas over the default Puppet
implementations is that Augeas will go to great lengths to preserve file
formatting and comments, while also failing safely when needed.
These providers will hide all of the Augeas commands etc., you don't need to know anything about Augeas to make use of it.
The following builtin types have an Augeas-based provider implemented:
The following other types have a provider implemented:
The module adds the following new types:
apache_setenvfor updating SetEnv entries in Apache HTTP Server configs
kernel_parameterfor adding kernel parameters to GRUB Legacy or GRUB 2 configs
nrpe_commandfor setting command entries in Nagios NRPE's
puppet_authfor authentication rules in Puppet's
shellvarfor shell variables in
sshd_configfor setting configuration entries in OpenSSH's
sshd_config_subsystemfor setting subsystem entries in OpenSSH's
sysctlfor entries inside Linux's sysctl.conf
syslogfor entries inside syslog.conf
Lots of examples are provided in the accompanying documentation (see
docs/examples.html) and are also published on the web site.
If this is a git checkout, you will need to run
make in docs/ to generate the
Type documentation can be generated with
puppet doc -r type or viewed on the
Puppet Forge page.
For builtin types and mounttab, the default provider will automatically become
augeas provider once the module is installed. This can be changed back
parsed where necessary.
Ensure both Augeas and ruby-augeas 0.3.0+ bindings are installed and working as normal.
On Puppet 2.7.14+, the module can be installed easily (documentation):
puppet module install domcleal/augeasproviders
You may see an error similar to this on Puppet 2.x (#13858):
Error 400 on SERVER: Puppet::Parser::AST::Resource failed with error ArgumentError: Invalid resource type `kernel_parameter` at ...
Ensure the module is present in your puppetmaster's own environment (it doesn't
have to use it) and that the master has pluginsync enabled. Run the agent on
the puppetmaster to cause the custom types to be synced to its local libdir
puppet master --configprint libdir) and then restart the puppetmaster so it
The following builtin types have Augeas-based providers planned:
Other ideas for new types are:
Please file any issues or suggestions on GitHub.