IRILL - Research and Innovation on Free Software

Recursive node classification for system automation


"Recursive node classification for system automation"
by martin f. krafft,
Download Webm format
Download MP4 format

In this lecture, I will give an introduction of reclass, a tool to manage infrastructure inventories for automation tools like Salt and Puppet, which works radically different than what you know from these tools. My hope is to get you as excited as I am, because reclass opens up a whole new paradigm to approach system automatioon and remote administration. reclass is an "external node classifier" (ENC) I wrote over years of using automation tools like Puppet, Salt and Ansible, which can be used across all these tools. It is also a stand-alone tool for merging data sources recursively, although I have no other use cases yet. 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). 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 piece together your infrastructure from smaller bits, eliminating redundancy and exposing all important parameters to a single location, logically organised.