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:
- Support for parameterized classes
- Simple installation/configuration
- 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