Re: [Puppet Users] Yum Repos - Best Practice?

2010-12-21 Thread Felix Frank
On 12/20/2010 07:26 PM, Matthew Macdonald-Wallace wrote:
> Hi all,
> 
> I'm wondering how other people mange yum repositories using the yumrepo
> type.
> 
> At the moment, we have a class called "repos" which has all of our repos
> defined in it.
> 
> This class is included in our 'base' class which sets up things common
> to all servers such as puppet, mcollective, nrpe etc.
> 
> The down side of this is that all of our repos are included on all of
> our servers, leading to a complete mess in /etc/yum.repos.d/
> 
> I'm now thinking that I need to only call in the various repos for the
> servers which require them, i.e. CentosBase and others would be included
> in the 'base' class, however those which provide things such as php 5.3
> would only be included on webservers etc.
> 
> What would be even nicer would be if there was a way to override certain
> aspects of existing repos, for example:
> 
> class base{
> # other yumrepo defines...
> ...
> ...
> 
> # stick with the php 5.1 in Centos Base
> yumrepo{"epel":
> excludepkgs=>"php*",
> }
> 
> }
> 
> 
> class webserverphp52 {
> # include php5.2 from epel 
> yumrepo{"epel":
> excludepkgs => "",
> }
> }

Hi,

I'm not using yum, but this looks like a use case for either or both of
virtual resources and inheritance:

class yumrepos { # included by each and every node
  @yumrepo {
"one": ...;
"two": ...;
...
"epel": excludepkgs=>"php*", ...;
  }
}

class base_repos { # also included by all (?)
  realize(Yumrepo["foo", "bar"])
}

class php_repos {  # only for those who want
  realize(Yumrepo["epel"])
}

class yumrepos_epel_enable_php inherits yumrepos {
  Yumrepo["epel"] { excludepkgs => "" }
}

So your webserver class will probably
include php_repos
include yumrepos_epel_enable_php
to get (in addition to the base repos) epel and include epel's PHP packages.

HTH,
Felix

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-us...@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.



[Puppet Users] Yum Repos - Best Practice?

2010-12-20 Thread Matthew Macdonald-Wallace
Hi all,

I'm wondering how other people mange yum repositories using the yumrepo
type.

At the moment, we have a class called "repos" which has all of our repos
defined in it.

This class is included in our 'base' class which sets up things common
to all servers such as puppet, mcollective, nrpe etc.

The down side of this is that all of our repos are included on all of
our servers, leading to a complete mess in /etc/yum.repos.d/

I'm now thinking that I need to only call in the various repos for the
servers which require them, i.e. CentosBase and others would be included
in the 'base' class, however those which provide things such as php 5.3
would only be included on webservers etc.

What would be even nicer would be if there was a way to override certain
aspects of existing repos, for example:

class base{
# other yumrepo defines...
...
...

# stick with the php 5.1 in Centos Base
yumrepo{"epel":
excludepkgs=>"php*",
}

}


class webserverphp52 {
# include php5.2 from epel 
yumrepo{"epel":
excludepkgs => "",
}
}

Is this possible with 0.25 (we're installing from Epel and we're nowhere
near ready to upgrade to 2.6!)? 

How are other people managing this kind of situation?

Cheers,

M.

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-us...@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.