Puppet-classifier-etcfacts is a project mainly written in Ruby, it's free.
Puppet external node classifier for MCollective etcfacts
This classifier is based upon the etc_facts.rb plugin written by R.I.Pienaar. The classifier looks for the classes and parameters facts set by the etc_facts.rb script. The script parses the classes fact split by "," and assigns the corresponding class to the node. The script then looks for parameter and then breaks it down into a key and a value delimited by ":". These parameters are used in puppet manifests as local variables for configuration overrides.
/etc/facts.txt:
parameters=tomcatMem:6g,permGen:512M,subCollective:qcollective:mcollective
classes=ntp,tomcat
Output:
---
parameters:
permGen: 512M
tomcatMem: 6g
subCollective: "qcollective,mcollective"
classes:
- tomcat
- ntp::server
environment: production
You have to have the etc_facts.rb facter plugin installed on all of your mcollective / puppet nodes.
You can follow the instructions to install a external nodes script. You will modify the line to point to the puppet-etcfacts.rb script
========
2011/04/01 - First revision
========
Jeremy Carroll [email protected] @jeremy_carroll