Hi all,
I wanted to introduce something that I've been working on on the side and get people's feedback on it. Be warned, this is very much an experiment that might wind up eating your laundry (at least your IoT laundry), though it does work on at least three different machines for me ;)
One of the things that has been bugging me for a long time is that Unixy systems have no decent management API (no, CIM is not decent ;) yet those API's exist, like the Resource Abstraction Layer inside Puppet. That has quite a few drawbacks, most importantly, that you either use Puppet or you don't, but there's no middle ground for very basic management tasks (like a shell script that wants to do a simple package/file/service)
Libral is an attempt to build such an API. While it's heavily inspired by Puppet, and has an eye towards making it easy to slot it into Puppet to expose its providers, it's consciously trying to not be too Puppet-specific; I am hoping that it can and will be used in other contexts, and serve as the basis for interesting explorations and new ideas in systems management.
The main goals of libral are:
- make something like Puppet's RAL available without requiring the
whole Puppet machinery so it can be used for other purposes; that
includes a very small footprint for use in resource-constrained
environments (e.g., containers and devices)
- make it really easy
to write new providers. My goal is that if you know how to manage a
thing, it should take you 30 mins or less to learn enough about libral
to turn your knowledge into a provider
- allow for more of a
sliding scale in terms of complexity of writing providers: to get
started, and for simple things, shell scripts make great providers. When
things get really complicated, or footprint is the overriding concern,
you might have to write C++, though that should be a rare exception.
For more detail, check out the
README and give the prebuilt ralsh a spin. There's a mailing list
lib...@googlegroups.com though of course I'll also respond here to any questions/ideas.