Monday, October 24, 2016

New release: Machinery 1.22
for SUSE Linux Enterprise

We have now released the long-awaited version 1.22 for SUSE Linux Enterprise, but of course it is available for openSUSE and other distributions as well. Since our previous Machinery for SUSE Linux Enterprise release (1.18) there are quite some changes and new features introduced.

What's New?

Improved HTML Navigation

You'll experience an improved graphical user interface, where show and compare views are connected. With this you can navigate between viewing different descriptions as well as comparing them, so working with multiple system descriptions is much faster and offers greater usability.

Select descriptions and comparison of two different descriptions directly in your browser.

HTML Export (standalone)

This release introduces the "export-html" command, which will enable you to export a system description to a standalone directory with an index.html.

View of an exported description (standalone HTML) showing a file "diff"

The new export allows viewing system descriptions in a browser, without running the machinery server. This way the HTML version of the description can easily be copied around for archiving or for integration with other tools.

ARM Architecture support

We added support for ARM architecture so if you were keen on trying out Machinery to inspect your Raspberry Pi by all means please do.

For consistency and to better distinguish Machinery options:
  • The "config-files" inspector was renamed to "changed-config-files"
  • The "--exclude-scope" option is now called "--ignore-scope"

Other notable changes

It's also worth mentioning that from now on, machinery will show how many of your unmanaged files are sub-directories when you inspect a system with the `--extract-files` or `--extract-metadata` options.
Beside that there are fixes on the autoyast and kiwi export features, as well as fixes for inspecting other Linux systems.
This release of Machinery is at Format Version 10.
For a full list of changes see the NEWS file.


Machinery for SUSE Linux Enterprise 12 is part of the "Advanced Systems Management Module". See the documentation on how to add Modules to SUSE Linux Enterprise 12.
For openSUSE download Machinery 1.22 from the Machinery home page via one-click install, or update to the latest version by running zypper in machinery. We love to hear feedback, so tell us what you think on our mailing list or on GitHub.

Monday, August 1, 2016

Improved HTML Navigation - Behind the Scenes

Last week we wrote about the new GUI of Machinery, which integrates all views in one consistent navigation scheme. How did we get there? This post gives some insight into the design process we went through to create the new interface.


Before, Machinery provided three different GUIs, accessed through the browser, each initiated by its own command: one for listing all available descriptions, one for viewing a single description and one for comparing two different descriptions. There was no easy navigation between these views. To give the user a way to navigate through all descriptions while showing their details or comparing different descriptions without having to leave the graphical interface we decided to create an integrated navigation concept.


A typical design process consists of several phases: identifying the problem to solve, creating ideas for solutions, converging on prototypes for the most promising solutions, testing the prototypes, and implementing the best solution.

We knew what problem we had to solve so we went for a brainstorming session to create as many ideas as possible for how to do a consistent navigation between system descriptions and their comparisons. Our whole team had a meeting together with one designer for additional expertise. We split up in four groups spreading across the same number of rooms and created different mock ups, like these examples:


Drop down:

Burger Menu:

Each group presented their suggestions and described their thoughts and ideas behind each of their respective drafts. The whole session took not more than an hour and it was a lot of fun.

After some debate two possible solutions emerged and we decided to create prototypes of both the drop down and burger menu variants. We used the same technologies as we already had used for the implementation of the GUI, Bootstrap and HAML, for implementing the design decisions we have taken. Using these technologies as foundation made it easy to create the two prototypes quickly.

To get some data about how well the both variants worked we conducted usability tests with both. This resulted in the drop down variant being better received and understood than the other candidate.


After the decision based on the usability test results the chosen prototype was polished. This first iteration was discussed and refactored and this process was repeated a second time until the final result was released.

One of the main features of the new interface is that the navigation stays the same on all different views so the user is able to switch between those using the same and familiar way of navigation and is at any point aware what the current state is. Selecting a system description is done through a popup window, which is shown in a similar way for selecting a description to show its details and for selecting the descriptions to be compared.

Comparison view showing two system descriptions

Especially for the comparison view we thought about a way to integrate both the navigation and the name of the system description, saving additional elements to not make it appear cluttered. An additional advantage of this design is that at any point the layout is structured and it is visually determined where the displayed information belongs.

The design process led us to a nice improvement of the user interface, driven by the feedback we got from users. By doing it iteratively with low-cost prototypes, we were able to check out quite a number of alternative ideas giving us a great base for selecting the best solution without spending too much time on ideas that didn't work well. All in all it was a fairly quick process. We will use it again for future design work.

If you are interested in the exact changes check out our Github repository where you are also welcome to suggest new features or submit pull requests.

Monday, July 25, 2016

Navigating your Linux system descriptions the pretty way

Machinery is a command line application to gather information about a system by inspection. The data is stored in a system description which can be accessed without the system being available. So these can be viewed and compared at any time using the console and additionally in the web browser using the graphical user interface of Machinery. This interface offers a nice and easy way to do the same in the web browser.

What's New?

Starting from version 1.21.0 you'll experience an improved graphical user interface, where show and compare views are connected. With this you can navigate between viewing different descriptions as well as comparing them, so working with multiple system descriptions is much faster and offers greater usability.

When you start the graphical user interface you will get a list of all available system descriptions, where you can choose one to view more details. The following screen shot shows this list. You can use the search mask to filter them for certain terms. Simply click on the description you would like to see and it will get you to the details view. Run the command `machinery list --html` to get to the list view.

View of all available system descriptions

The next screen shot displays the content of a single system description where each part of the system is shown in more detail. The name of the currently selected description is provided in the drop down menu in the top left corner. For showing another one, click on this menu. You will get back to the list of all descriptions and can choose again from there.

It is also possible to get to this view by running the command `machinery show --html ‹description›`.

View of a single system description
For comparing a system description to the current one, click on the drop down menu on the right. You are then presented with the familiar menu from the first screen shot, in which you can choose another description for comparing.

The result is then provided in a two-column view, where you can see all the differences between the two system, section by section.

Get to this view from the command line by running `machinery compare --html <description1> <description2>`.

Comparison of two different descriptions
For going back to the details view of one description just close the comparison by clicking on the button with the "x".

No matter if you browse through your systems, drill down to details of individual ones, or compare different machines, or versions of the same system, the new interface will give you a consistent view, where the next step is just one click away.


As static images can't do justice to the new GUI, we invite you to give it a try and experience it yourself. Download Machinery 1.21.0 from the Machinery home page via one-click install, or update to the latest version by running zypper in machinery. We love to hear feedback, so tell us what you think on our mailing list or on GitHub.

Monday, July 18, 2016


We have created this blog to keep you up to date about news regarding Machinery!

So what is Machinery about?
Machinery is a command line application for creating descriptions of Linux systems and working with them.
You can use it to get insight into existing systems, to store and track their state, or to create new systems based on existing ones.
Machinery provides powerful views of individual and comparisons between systems.
It can also export descriptions to other tools for installation, migration, image building, containerization, or cloud deployment, and provides defined interfaces to work with system descriptions from your custom tools.

Originally, the project was initiated by SUSE inspired by the idea of a universal system description. A system description describes the content of a system. It can be stored, compared to other descriptions, analyzed, modified, or used to replicate a system from a description. You can call it "offline systems management".
A detailed explanation, including a fancy video, can be found at our homepage.

Machinery is an open source project, the source code and development is managed on Github, which means you are welcome to participate at any time!