Re: [Puppet Users] Is there a way...

Christopher Wood
Thu, 01 Dec 2011 16:02:05 -0000

(Take all this with a grain of salt, perhaps I''m inexperiencedly
rhubarbing on.)

You don''t necessarily need to configure your packages in the same
module that you install them in. You can have a generic module for installing
packages, which is included by more specific configuration modules.

I wouldn''t call it slick, but perhaps something like this module
structure if you only use postfix for mx hosts?

postfix/
postfix/files
postfix/manifests
postfix/manifests/init.pp
# class postfix installs the postfix software
postfix/manifests/edgemx.pp
# class postfix::edgemx includes class postfix, installs spamassassin and does
its own cf modifications for edge hosts running spamassassin
postfix/manifests/coremx.pp
# class postfix::coremx includes class postfix, and does its own cf
modifications for core hosts running only spamassassin
postfix/manifests/clammx.pp
# class postfix::clammx includes class postfix, installs clamav, and does its
own cf modifications for the clamav-using postfix hosts

If you have generic cf configs across all bits, they''d go in the base
postfix class.

By contrast, something like this if it''s more to your flavour:

postfix/manifests/init.pp
# installs postfix software (no configuration)
clamav/manifests/init.pp
# installs clamav (no configuration)
# spamassassin/manifests/init.pp (no configuration)
coremx/manifests/init.pp
# includes spamassassin and postfix classes, does postfix config specific to
core hosts
edgemx/manifests/init.pp
# etc for edge hosts
clammx/manifests/init.pp
# etc for clamav hosts

Or possibly mix up the two, and so forth.


On Thu, Dec 01, 2011 at 10:49:00AM -0500, Peter Berghold
wrote:
>    ... to invoke a template from multiple modules?� Here is what I mean:
>
>    I have a module called "postfix" which handles the
installation and base
>    configuration of the postfix MTA.� I have another module called
>    "spamassassin" which deals with the download and installation
of the
>    Mail::SpamAssassin Perl module which incidently adds the init scripts
for
>    SpamAssassin and the clamd binary.
>
>    I''d like that spamassassin module to modify both the
[1]master.cf and
>    [2]main.cf file of postfix to enable its own functionality.
>
>    Rather than make SpamAssassin part of the postfix module I separated it
>    out since not all machines running postfix need to have the overhead of
>    SpamAssassin (eg. mailers behind the firewall that don''t accept
outside
>    email) but my border MX machines do.
>
>    There''s another module that needs to modify postfix''s
config files to be
>    enabled as well and that''s the ClamAV module, I won''t
go into detail here.
>
>    The problem I see is if each of them modify the configs, the postfix
>    module is going to remove the changes the other modules made.
>
>    Is there a slick way of doing this?
>
>    --
>    Peter L. Berghold
>    Owner, Shark River Technical Solutions LLC
>
>    --
>    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+unsubscribe@googlegroups.com.
>    For more options, visit this group at
>    http://groups.google.com/group/puppet-users?hl=en.
>
> References
>
>    Visible links
>    1. http://master.cf/
>    2. http://main.cf/