Here 
http://ttboj.wordpress.com/2013/06/04/collecting-duplicate-resources-in-puppet/ 
is 
explained how to do the "trick" to be allowed to define several times the 
same exported resource.

The basic idea is:
 - Create a custom defined type to be exported
 - That defined type should be exported always with different names ($fqdn 
for instance)
 - Inside that defined type, use ensure_resource() to create the needed 
resource (this method will create only one resource, no matter how many 
times is defined)

I have implemented my own solution:
https://github.com/adrianlzt/puppet-monitoring/blob/feature/default_hostgroup/puppetmasterData/modules/monitorizacion/manifests/basic.pp
 lines 
28-33
https://github.com/adrianlzt/puppet-monitoring/blob/feature/default_hostgroup/puppetmasterData/modules/monitorizacion/manifests/icinga/hostgroup.pp
 lines 
12-23
https://github.com/adrianlzt/puppet-monitoring/blob/feature/default_hostgroup/puppetmasterData/modules/monitorizacion/manifests/icinga.pp
 lines 
133-136

El viernes, 6 de enero de 2012 17:55:11 UTC+1, windowsrefund escribió:
>
>
>
> On Nov 17 2011, 5:51 am, Martijn Grendelman <mart...@iphion.nl> wrote: 
> > Hi, 
> > 
> > Is there a way to 'unique-ify' a collection of resources? 
> > 
> > Suppose that nodes export '@@nagios_hostgroup' resources for hostgroups 
> > that they want to be a member of. The Nagios server node collect those: 
> > 
> >   Nagios_hostgroup <<||>> 
> > 
> > But many nodes export the same hostgroups, because the whole point of 
> > having hostgroups is, that multiple hosts can be a member :-) So, the 
> > collection would lead to duplicate definitions. Is there a way to avoid 
> that? 
>
>
> The trick here is to realize that only the nagios server (the resource 
> collector) needs access to these resources. This means your clients 
> really do not need to export the resource at all. Instead, the 
> resources should be included in the manifest that ends up being 
> compiled by your nagios server(s). You're probably saying "Yes, but 
> how do I then control what hostgroup each client is a member of?". I 
> solve this problem with a combination of a node scoped variable and 
> the hostgroups parameter of the Nagios_host exported resource like so: 
>
> @@nagios_host { 
>   hostgroups => inline_template("<%= has_variable? 
> ('my_nagios_hostgroups') ? my_nagios_hostgroups : 'Other' %>"), 
> ... 
>
> and of course, my nagios server's manifest then includes the hostgroup 
> resources 
>
> nagios_hostgroup { ['Awesome', 'Not Awesome', 'Other']: 
>   ensure => present, 
>   ... 
> } 
>
> Best, 
> Adam

-- 
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/452c4488-a7a7-4b1a-846a-ddb4dff5fbdd%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to