I’ve often wanted to have Configuration Management as a library - a set of tools I can use to experiment with features in my Autonomous Agents to build new kinds of highly reactive and distributed configuration management.
After spending a lot of time looking at the various options I finally caved and started working on this as a Choria project.
At first, as stated, focussed on the library aspect of the project but I soon realized that I have a long standing need that existing CM projects did not address.
That need is about my home lab, dev setups, throw away machines and places where I want to experiment with software. I want Configuration Management that’s tailor made fot these unpredictable environments where every node is not just a pet but a snow flake - completely unique.
So using this library I started a new Configuration Management project called Choria Configuration Manager - or simply CCM. The focus is on bringing Configuration Management to places it has not been before:
- Ad-hoc on the CLI
- In shell scripts
- In YAML manifests
- From any programming language that can interpret JSON
- In Choria Autonomous Agents
- As a library
It’s true we’ve had many of these before but CCM is focused on bringing high quality Configuration Management to all these places.
That means Idempotency, Desired State, Noop mode, Transactional behaviors (notify and subscribe), Hierarchical Data, System Facts etc.
Of course ultimately the goal is to bring Configuration Management into Autonomous Agents where it will bring the capabilities of CCM to very large scale deployments. But that’s the beauty of CM as a library, we can use it to solve many kinds of problems with consistency and compatibility between different worlds.
Read on for the details
[Read More]