Phillip Frost
2011-Nov-18 17:18 UTC
[Puppet Users] Setting nagios hostgroups based on included classes
I''m trying to generate (and manage) nagios configuration based on what classes have been included by nodes. I''ve seen the example at http://docs.puppetlabs.com/guides/exported_resources.html, and I''m doing that now. However, it has some problems: - puppet runs are very slow on the nagios node - when I want to change the service configuration in nagios, I have to wait for all my puppet agents to check in so they can export a new nagios_service, then wait for the nagios node to check in to pick up the exported service - the nagios configuration is hard to read with human eyes because the same service definition is repeated many times, once per node I''d much rather configure nagios like most people would do it if they weren''t generating their configs. Rather than having 100 service definitions for 100 webservers, they have 1 service definition that applies to 100 hosts, or to 1 hostgroup that has 100 nodes in it. Here''s the problem: I can''t think of anything to put in the apache class that will result in a host being in the "apache" nagios hostgroup (which ultimately is set by a comma delimited string). That''s because: - an element in a comma delimited string is a fragment of a resource (a file), so I can''t export it or alternately: - there''s no way to introspect the classes that are included in a manifest and generate the corresponding comma delimited string, then export it Essentially, I want this: include apache include exim To result in this: file { "/config_file": content => "apache,exim\n" } Any ideas on how I might accomplish that? -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.