In a bunch of my templates and manifests, I need to have logic which depends on whether or not a particular (other) puppet class is going to be installed on the machine.
For example, for setting up the proper nagios monitors, you'd want to say something like "if this machine has the apache class, then configure apache monitoring" It's not feasible I think to put this logic in the "apache" class, since you'd have to have a way to build up the nagios config file from parts contained in many classes which sometimes are installed together. Is there a function I can call, or could you provide some advice on how to approach writing such a function, which will tell me that the machine the catalog is being compiled for also has a particular class as part of the catalog? Currently, I'm stuck writing templates and manifests which have a lot of "if the hostname matches this regex, or if the fqdn matches this regex..." since classes are applied by fqdn ultimately, however, this is growing unmanageable as we're moving to a more dynamic system of creating machines and assigning more arbitrary names to machines using an external nodes store... Without this feature, we're still stuck in many cases having to commit changes to the puppet repository when we make machines and can't make the jump to being fully automated machine creation with arbitrary host names. Additionally, IMO, it makes it very difficult to understand many manifests and templates with all the special casing for machine names, instead of asking about installed classes. -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. 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.
