On Monday, April 15, 2013 9:13:27 AM UTC-5, Kodiak Firesmith wrote:
>
> Hello,
> Our group is currently moving from RHEL5 and an in-house baseline 
> management system and yum repositories to RHEL6, Puppet , and RHN Satellite.
>
> With our old homebrew management framework we had a lot of flexibility and 
> ease in declaring which packages should be allowed or disallowed, defined 
> either by-system or by-class/role of system.
>
> A couple examples:
>
> In Joe's server definition file: 
>   install - tomcat, java17-oracle, httpd, tomcat, confluence
>   uninstall - java16-sun
>
> Or 'class development workstation':
>   install - hg, git, subversion, eclipse, vim, ...(tens or hundreds of 
> RPMs)
>   uninstall - rcs, emacs
>
>
>
> Now for puppet it seems you can only declare/manage a package resource in 
> 1 place across all of puppet, so the only semi-viable way to manage package 
> baselines so far is to make a module for each RPM we care about managing, 
> then add those modules to node definitions or to classes, since you can 
> include a module many times and it doesn't mind.
>
>
A resource can only be declared once per catalog.
 

> An example would now be:
>
> manifests/nodes/joe_ws.domain.tld/node.pp:
>   include development_workstation
>
> And in manifests/classes/development_workstation/init.pp
>   include mercurial
>   include git
>   include subversion
>   include eclipse
>   include vim
>
>
> I kind of feel like I'm doing things in a more complicated way than I need 
> to, but I'm not sure how to simplify - so I ask the more experienced puppet 
> peeps out there, how are you managing software baselines?  
>
>
We have a module called "basenode" which handles the things that are common 
across *all* nodes (7zip, ntp, puppet etc).

Some of these are given their own module (puppet, ntp, apt) and others just 
get a package resource (7zip).

For things that are on *most* nodes but not all, I create a hash of hashes 
in my common.yaml, then override as needed in more specific yaml files.

Then I just use a create_resources() call and feed it the hash of hashes - 
but this is only for things that don't require configuration and simply 
need the package to be installed.  If it needs a config file customized, 
then it goes into its own module.

There are other ways to handle this, and some may be better (or just better 
in specific cases) but this works for us.

 

> Thanks!
>
>

-- 
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 post to this group, send email to puppet-users@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to