OpsMop is now available for initial feedback.
OpsMop is a Python based configuration management system, featuring a Python DSL, extremely strong type checking, and a great API for code reuse in plugins. It has a really nice template implementation where we don't have any fuzzy matching problems between data types - strings can be templated, everything else looks like Python.
Because it's Python, you an build up orders for any system totally programatically. If you want to hit an external service to get a configuration, anything is possible.
The whole thing is basically an API - though right now, the API is rough outside a few specific areas, more trying to prove the idea works. Good news - it works. Now its' time to refactor everything to make it really elegant. (Lots of code FIXMEs!)
At this point, as the README indicates, the project is seeking feedback on the code language examples (demo/.py) and the API we use to develop plugins (the included examples are basic, but look at provider/.py and types/*.py for examples - Shell, Echo, Service, etc).
Also, I'd like to hear about what you want to see in a config management system - should it push or pull? What are the problems you have most frequently with the tools you use?
If you're familiar with my past venture into the configuration world, this project is about in that state after being out for a couple of weeks. In the early days of that project, we rapidly acquired a good database of facts, and got plugins for services and packages working well, and the language evolved. Some more programming structures were added, and within just a few months, it was production ready. We're pretty much in that state again, but attempting to take lessons learned from two decades of configuration, and do it RIGHT this time.
At least, maybe right if you like Python.
Take a look at the code at
And in particular
and this crazy example:
here's the homebrew module:
and here is the type implementation for package, which is generic:
These APIs can probably be cleaner than these are, but that's a start?
What do you think? What would you like to see in a new config tool in 2018?
(ALSO: feel free to start lots of new threads about all kinds of ideas/questions, this is basically replacing a mailing list).
Thanks and I am incredibly looking forward to working with many of you again!