System Analysis is part of many use cases you face as administrator in the data center. You need it for documenting system setups, for validating correct operation of systems management tools, as part of compliance requirements, or as a way to consolidate grown infrastructures. You also need it as part of more complex work flows, such as migrating systems from physical machines to cloud-based infrastructure, as part of your QA strategy in a golden image approach, or you use it to feed your configuration management data base.
With SUSE Linux Enterprise 12 we introduce a tool to help you with this. It lives in the Advanced Systems Management module and is called Machinery. After adding the module in YaST it can be installed with `zypper install machinery` or in the graphical interface YaST provides. This will get you the command line tool `machinery`, which you can use to analyze running systems.
The first step of the analysis is inspecting a running system. Machinery doesn’t require any instrumentation of the system for this to work, but just relies on existing ssh infrastructure. The inspection does a full scan of a system. It extracts information about installed software, configuration, and any additional files. The goal is to have all information required to recreate the system in the same or another form. The result can be shown on the command line or as a graphical report.
But Machinery doesn’t stop with inspecting a system and creating a report from this. Its core concept is a universal system description, which can be used for different use cases. The inspection writes such descriptions and Machinery provides you the tools to manage them. Once you have a description of a system this opens a number of interesting opportunities.
You can for example compare different system descriptions. This can be used for validating if a system conforms to some reference. It can also be used to compare different systems, or what has changed over time in the same system. By storing the descriptions you can even do that offline without requiring accessing any running system.
Another use of the system description is to replicate a system, or use it as a base for a migration. It can be combined with image building tools such as Kiwi to create images for SUSE Cloud or other virtual or cloud infrastructures. Or you base a new installation of a system on an existing description, but tweak it to your needs to for example take advantage of the new features of SUSE Linux Enterprise 12.
With the concept of the system description and a modular set of commands Machinery provides an extensible set of features to cover a huge number of use cases.
Key is that Machinery is not trying to replicate functionality of existing tools, such as SUSE Manager or configuration management systems. Its goal is to fill gaps, and make integration of existing tools easier. This is driven by the needs you have as administrator in the data center. Machinery is under active development and we will release regular updates with extended functionality.
Machinery is developed as open source project. Its code is available on GitHub, so you can follow and even contribute to its development. Feedback is always appreciated. We package it for openSUSE, and for SUSE Enterprise Linux 12, where you get full support for it as you know it from the SUSE enterprise products.