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.