The Machinery project adds one feature to SUSE Manager that even Salt in its current state can not fully provide: You can scan a complete system for all programs, configuration files, users, and services that are present, and compare those over time.
The first goal of this hack week project is to create a standalone server (or container) that is going to be the Machinery "collector", and then loosely couple it through Salt, e.g. via a Salt Runner like the Spacewalk Runner or a Salt Proxy.
No code changes should be required inside the Machinery codebase.
One can then trigger Machinery runs on one or more target systems from Salt (and later the SUSE Manager UI), schedule regular runs, and display the results using either the raw JSON generated by Machinery or its existing HTML component.
With this setup, one of the advantages of using Salt is not fully utilized: Machinery will still require a working SSH setup for the "collector" server to reach the target system and the results.
A stretch goal that would require code changes in Machinery is to allow running the data collection/scan) through the Salt Minion's message bus connection via an execution module. As an alternative, one could use and extend the existing Salt inspectlib collector module instead.
Even further down the road, SUSE Manager should be able to also enforce a system manifest created by Machinery (completely or part of it, e.g. package list only) as a configuration baseline.
Looking for mad skills in:
Nothing? Add some keywords!
This project is part of:
Hack Week 16
This project is one of its kind!