On Jan 29, 2013, at 4:19 PM, Matthew Pounsett <[email protected]> wrote:
> > > On Tuesday, 29 January 2013 13:58:20 UTC-5, Ti Leggett wrote: >> I include that in the module that installs the shell packages and configures >> them, in my case, I call it base. In other words, the variables should be as >> close to the things they affect or are affected by. Just because every node >> might include base (or site) doesn't mean every variable you'll ever want to >> use should be in there. That, to me, creates a messier and more confusing >> dependency relationship between modules that use a variable and what that >> variable ultimately affects. >> > If you have a module that installs and configures those shells, then great. > But many systems come with those shells preinstalled, and there's nothing to > manage. Perhaps shells were a bad example, since one of tcsh or bash may > need to be added to an OS by puppet. What about the path to sed? That's > part of the base OS for all systems I manage, but the path varies from OS to > OS. It seems overly cumbersome to me to create an entire module just to > assign one variable, and then repeat that for a dozen or so other variables > with similar circumstances. It seems cleaner to have a single small module > that contains site-wide definitions that aren't obviously tied to modules of > their own. > If the package or service comes standard with many OSes (my standard is the bare bones basic set, not the 'default') then I would argue they should go in the module that configures all of those base packages/services. However, I still don't think that that module is a suitable place for all possible variables that another package may want to use at some point in the future... possibly. Take for instance examples I'm currently using: Apache's configuration directory (/etc/httpd/conf.d on RH, /etc/apache2/conf.d on Deb) or rsyslog directories or RADIUS directories or SSL certificate paths or any number of packages that are completely optional on some hosts. All of these are completely optional, some hosts may not install them, some may, some may install alternatives to them (syslog or syslog-ng), but when they're installed and used the variables within are very critical. I don't think these variables should be shoved into the base module just because it's already being used on every host. They should be left in the module that it matters to, because if you need that variable, you should be pulling in that module anyway - why put in an apache snippet (and need the apache config dir) if you're not already running apache and therefor pulling in that module. -- 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 post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
