A systems management toolkit for Linux
Ruby CSS HTML JavaScript Go Shell Other
Latest commit c60d52f Jun 11, 2018
Failed to load latest commit information.
bin Do not filter machinery-helper build messages Jan 9, 2017
export_helpers Update copyright date Feb 2, 2016
html Removing unecessary reload when clicking button "inspection details" Dec 22, 2016
lib Use compatible machinery-helper binarys for older archs Jan 9, 2018
man Describe "system description" on the man page Feb 2, 2016
manual Remove machinery mailing list entry Jun 5, 2018
package Move Machinery to public repository Jul 25, 2014
plugins Change tense in patterns error message Nov 30, 2016
public Remove unintended metadata from favicon Mar 16, 2016
workload_mapper Replace deprectated `exists?` by `exist?` method Mar 14, 2016
.gitignore Adapt code climate setup to latest version Jan 13, 2017
.rspec Add RSpec default configuration Jul 25, 2014
.rubocop.yml Adapt .rubocop.yml to Rubocop changes Aug 15, 2017
COPYING Move Machinery to public repository Jul 25, 2014
Gemfile Raise rspec version to 3.4.0 to prevent rake last_comment issue Mar 6, 2018
NEWS Use compatible machinery-helper binarys for older archs Jan 9, 2018
README.md Remove machinery mailing list entry Jun 5, 2018
RPM_CHANGES package 1.23.1 Nov 24, 2017
Rakefile Switch default package build target to Tumbleweed Feb 22, 2018
machinery.gemspec Remove machinery mailing list entry Jun 5, 2018



Code Climate Test Coverage Gem Version

Machinery is a systems management toolkit for Linux. It supports configuration discovery, system validation, and service migration. It's based on the idea of a universal system description.

A spin-off project of Machinery is Pennyworth, which is used to manage the integration test environment.

For more information, visit our website.



Machinery runs on most Linux distributions. Install it by following one of these methods:


Machinery is a command-line tool. You can invoke it using the bin/machinery command. It accepts subcommands (similarly to git or bundle).

To display a short overview of available commands and their descriptions, use the help command:

$ machinery help

For more information about the commands, see Machinery Documentation.



The following steps are only recommended if you want to build Machinery from sources, work on the codebase or test the latest development changes. For other distributions than SUSE look also here.

  1. Install Git

    $ sudo zypper in git
  2. Install basic Ruby environment

    $ sudo zypper in ruby rubygem-bundler

    After the installation, make sure that your ruby version is at least 2.0.0.p247-3.11.1:

    $ ruby -v

    With lower versions, bundle install won't work because of a bug.

  3. Install Machinery's dependencies

    Install packages needed to compile Gems with native extensions:

    $ sudo zypper in gcc-c++ make patch ruby-devel libxslt-devel libxml2-devel libvirt-devel

    Install Go in order to compile the machinery-helper:

    $ sudo zypper in go
  4. Clone Machinery repository and install Gem dependencies

    $ git clone git@github.com:SUSE/machinery.git
    $ cd machinery
    $ bundle config build.nokogiri --use-system-libraries
    $ bundle install
  5. Done!

    You can now start using Machinery by running bin/machinery.

  6. Contribute

    Now that you have Machinery running from git on your machine you are ready to hack. If you would like to get some overview of architecture and design of Machinery have a look at our Developer Documentation.

    We are happy if you share your changes with us as pull requests. Read the Contribution Guidelines for details how to do that.


If you have any question, feel free to open an issue on our GitHub page.