Our site is using a collection of puppet modules to manage various Linux 
components using the roles and profiles model.  While it works OK for the 
most part, I often find it necessary to update a module or profile for some 
reason or other.  Modules obtained from puppet forge sometimes don't quite 
do what is needed, and writing good quality modules on your own can be a 
challenge.  When using roles and profiles you end up declaring all the 
module parameters again to avoid losing functionality and flexibility.  You
also need to be familiar with all the classes, types, and parameters from 
all modules in order to use them effectively.  

To avoid all of the above, I put together the 'basic' module and posted it 
on the forge:  https://forge.puppet.com/southalc/basic

This module uses the hiera_hash/create_resources model for all the native 
puppet (version 5.5) types, using module parameters that match the type 
(exceptions for metaparameters, per the README).  The module also includes 
the 'file_line' type from puppetlabs/stdlib, the 'archive' type from 
puppet/archive, and the local defined type 'binary', which together provide 
a simple and powerful way to create complex configurations from hiera.  All 
module parameters default to an empty hash and also have a merge strategy 
of 'hash' to enable a great deal of flexibility.  With this approach I've 
found it possible to replace many single purpose modules it's much faster 
and easier to get the results I'm looking for.

Yes, the hiera data can become quite large, but I find it much easier to 
manage data in hiera than coding modules with associated logic, parameters, 
templates, etc.  Is this suitable for hyper-scale deployment?  Maybe not, 
but for a few hundred servers with a few dozen configuration variants it 
seems to work nicely.  Is everyone else using puppet actually happy with 
the roles/profiles method?

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/e7014908-5e5d-4525-af28-4936d75fb685%40googlegroups.com.

Reply via email to