I've [somewhat] recently started developing Puppet modules for use with Foreman and have gone through a couple iterations. At first I was developing a large, broadly-scoped module for a specific purpose. I soon found that in order to provide any amount of customizable behavior I would have to provide so many parameters that it was unwieldy.
Therefore, I moved into using much more purpose-specific modules (e.g. sshd, aide, chrony, etc). These modules provide a lot of flexibility but then you lose the centralized view of the things the configuration items for a specific application or workflow require. I recently came across some modules on the Forge that got me considering using modules with defined types exposing their functionality. I think this seems to be the ultimate way to do things because it allows the same flexibility as the purpose-specific module setup while essentially requiring you to have another module for your application or workflow which utilizes the defined types from all of your defined type augmented modules. However, I would very much prefer an all or none solution. That is I don't want to have defined type modules for pieces of a workflow but have to directly configure parameters on other modules for other pieces of my workflow. Unfortunately, the module availability on the Forge seems to be about 50/50 at best (that is maybe half the modules are built with defined types). Also, the use of defined types, at least when dealing with config files, essentially means using either Augeas or Concat. For complex configuration files this can often be quite difficult (which I think is why many people default to templates). So, in order to use the defined type route it would seem that one needs to invest a lot of time in developing custom modules. It seems easier and not much worse to just settle for purpose-scecific parameterized modules. This has the side effect of giving a better centralized view of all the configurations applicable to a given process or library. I'm very interested in hearing about other peoples' experiences and recommendations. On Tuesday, August 23, 2011 at 1:00:04 PM UTC-5, Digant C Kasundra wrote: > > Out of curiosity, how are people using parameterized classes in a way that > is distinct from defined-types? > > -- > Digant C Kasundra <[email protected] <javascript:>> > Infrastructure Systems Software Developer, ITS:IDG, Stanford University > -- 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/a8333100-022b-4d65-806b-6cf028a50a6d%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
