Hi,
I'm new to Puppet, and I'm trying to wrap my head around how I should
organize things. It seems pretty clear that the intent is to organize
things around functional facilities, like ntp, printing, name
resolution, etc. But my original inclination was to organize things
more organizationally for instance, common configs, mac configs, linux
configs, etc.
But it seems that it doesn't make much sense to have a module called
"common" because it wouldn't really do anything except contain other
modules. And after reading the best practices, it looks like maybe the
templates.pp is the place to sort of group things in this way.
On the other hand, I'm not loving the functional organization, because
(for example) mail configs for a mac have absolutely nothing in common
with mail configs for a linux system. I know I could have one piece of
code that says "if this is a mac, change these files, if it's linux,
change these instead". And I see the advantage in doing that in terms
of being able to parameterize the few bits that actually are in common,
like the name of our smtp server.
But to me it feels like it would be better to have separate code for mac
and linux, partly because they share so little code. And partly because
two different people are responsible for these two platforms, and
shouldn't be stepping on each others toes. And to extend that thought
it would be nice if a mistake screwed up only one platform instead of
all platforms. And this is made more confusing by the fact that this is
true only for some functional units; other things would be similar or
identical across platforms.
So do I shut up and write modules that handle multiple platforms? Or is
there a way to get both functional and organizational separation at the
same time and have the best of both worlds? It has occurred to me that
I could have (for example) an emailclient module, and then have
emailclient::darwin etc. and have emailclient include the appropriate
module subclass... but this makes me wonder if I'm misunderstanding the
point here as it seems like I'm calling an extension of a class from the
class itself which seems recursive or incorrect somehow.
Sorry for the long-winded explanation of my confusion. Any help is
appreciated.
tom
--
You received this message because you are subscribed to the Google Groups "Puppet
Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en.