This is the first iteration of oxford, a LDAP bridge between fact generation and LDAP as storage.
This is a wrapper for polling of facts via the Facter library (http://puppetlabs.com/puppet/related-projects/facter/) and export to LDAP
This has been tested on OpenLDAP
- extended fact schema (websages.schema)
- Setup your LDAP server to include the fact schema (inc/websages.schema).
- Configure your LDAP settings in the configuration file (see config/database.yaml for example)
- run bin/oxford -c i.e. bin/oxford -c /etc/oxford.conf
Q: Why did you do this instead of using
A: I like LDAP. While there are a lot of neat solutions on how to handle this problem set, I am aiming to reduce the overall technology footprint across places I deploy Puppet, et. al. Less technology stacks == less things to manage overall. Plus, LDAP provides me things out of the box like disaster recovery (replication) and HA (multi-master). Win.
Q: Why did you not extend Facter?
A: Facter is really good at doing one thing - providing facts.
Because this requires schema that is not existent by default in LDAP, I'd isolated both functions into very simple pieces UNIX style - my code is really good at writing and reading facts from LDAP. This will allow alternate fact generation tools (ohai, pfacter, etc) to also leverage writing of facts to LDAP.
Refactor code (potential integration into Facter?)
add alternate fact generation tools as options.
update namespace to include name.
Include Puppet custom specific facts when polling for facts
Package into gem