On Friday, August 24, 2012 4:38:54 PM UTC-4, lamour wrote:
>
>
> On Wednesday, August 22, 2012 5:06:41 PM UTC-4, Ramin K wrote:
>>
>>
>>
> node 'some.node.my.domain.com inherits basenode {
>> include mysql
>> include general_devel
>> realize Package['mysql-client']
>> }
>>
>> node basenode {
>> include sudo
>> include vpackage
>>
>> # realize all packages with this tag
>> Package<| tag = 'utils' |>
>> }
>>
>> class vpackage {
>>
>> # packages with tag => util get realized on all systems
>> @package { 'curl': tag => 'utils',}
>> @package { 'htop': tag => 'utils',}
>> @package { 'lynx': tag => 'utils',}
>> @package { 'screen': tag => 'utils',}
>> @package { 'strace': tag => 'utils',}
>> @package { 'tcpdump': tag => 'utils',}
>> @package { 'wget': tag => 'utils',}
>> @package { 'whois': tag => 'utils', name =>
>> $vpackages::params::whois, }
>>
>> @package { 'mysql-client': name => $vpackages::params::mysqlclient, }
>> }
>>
>
> Exactly! I want to build classes to be used as building blocks. I don't
> want to have to deal with unexpected package collisions between two
> classes because the authors of the two classes didn't know the package
> was being used by the other. That's ultimately where this discussion came
> from. If a package needs a whole class wrapped around it, it should get
> one,
> but if it "just needs to be present", then it shouldn't be required, IMHO.
>
sigh. my page timed out while I was editing this, and I ended up having to
cut and paste
the whole thing back together, and I (obviously) pasted the wrong paragraph
here. This
is the correct one:
This example is awesome! I tried out something similar in my test
environment, and it works great. My major issue with doing it this way
is that it means that I can't see from the class which packages it's
requiring, but it's still pretty nice that I only have to maintain one list
of packages. Also, it opens up a single point of failure for "all" classes,
if someone screws up this file. We may eventually go to something like
this and just wrap the editing of this file in a perl script with lots of
error
checking. lol
sorry for the confusion,
Michael
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/puppet-users/-/zPPHvsvSy8AJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en.