Home - drwahl/yape GitHub Wiki

Welcome to the yape project

The goal of this project is to provide a tool set which can be used to leverage MongoDB as an external node classifier for puppet. Since MongoDB is a schema-less database and offers HA out of the box it makes a great candidate for an ENC.

Documentation

Why Write Another ENC

When I started this project, there were few ENCs that provided support for parameterized classes. The key points of development were:

  1. Support for parameterized classes
  2. Simple installation/configuration
  3. Easy interface (CLI first, WebUI in the future, iPhone/Android apps if I have the time/drive)

This project originally started as a fork of bcarpio/mongodb-enc, but has since turned in to a complete re-write, only salvaging the data layout.

Features

Here is a list of the current features as of 12/11/2012:

  • Basic ENC Functionality (http://docs.puppetlabs.com/guides/external_nodes.html)

  • Add classes to a node (see note)

  • Add parameters to a node's classes

  • Add/remove node environment

  • Add/remove node parameters (global variables)

  • Multi-Node Inheritance For Classes

  • Example: Create generic "default" node, create generic "hadoop" node which inherits "default", create specific host node "hadoop-01" which inherits hadoop and have puppet apply classes from both the generic "hadoop" node and generic "default" node.

Note: Currently, to remove a single class from a host, leaving the rest of the configuration intact, is not possible. To do so, you should take a dump of the host, remove the host from the database, then re-add the host minus the class(es) you would like removed.

Here is a list of planned features:

  • WebUI for adding/modifying/removing hosts

  • Pull available class parameters from a puppet server

  • Sanity checks against class parameters before updating hosts

  • Provide user with insight as to what configuration options are available