Overview

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

Requirements

  • ruby
  • puppet
  • facter
  • activeldap
  • extended fact schema (websages.schema)

Usage

  • 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

FAQ

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.

Todo

~~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~~
¿Profit?