reclass is an “external node classifier” (ENC) as can be used with automation tools, such as Puppet, Salt, and Ansible. It is also a stand-alone tool for merging data sources recursively.
The purpose of an ENC is to allow a system administrator to maintain an inventory of nodes to be managed, completely separately from the configuration of the automation tool. Usually, the external node classifier completely replaces the tool-specific inventory (such as site.pp for Puppet, ext_pillar/master_tops for Salt, or /etc/ansible/hosts).
With respect to the configuration management tool, the ENC then fulfills two jobs:
reclass allows you to define your nodes through class inheritance, while always able to override details further up the tree (i.e. in more specific nodes). Think of classes as feature sets, as commonalities between nodes, or as tags. Add to that the ability to nest classes (multiple inheritance is allowed, well-defined, and encouraged), and you can assemble your infrastructure from smaller bits, eliminating duplication and exposing all important parameters to a single location, logically organised. And if that isn’t enough, reclass lets you reference other parameters in the very hierarchy you are currently assembling.
reclass will be used indirectly through adapters most of the time. However, there exists a command-line interface that allows querying the database. This manual page describes this interface.
Please see the output of reclass --help for the default values of these options:
-s, --storage-type | |
The type of storage backend to use | |
-b, --inventory-base-uri | |
The base URI to prepend to nodes and classes | |
-u, --nodes-uri | |
The URI to the nodes storage | |
-c, --classes-uri | |
The URI to the classes storage |
-o, --output | The output format to use (yaml or json) |
-y, --pretty-print | |
Try to make the output prettier |
-i, --inventory | |
Output the entire inventory | |
-n, --nodeinfo | Output information for a specific node |
-h, --help | Help output |
--version | Display version number |
Please visit http://reclass.pantsfullofunix.net/ for more information about reclass.
The documentation is also available from the ./doc subtree in the source checkout, or from /usr/share/doc/reclass-doc.