Rudder is an easy to use, web-driven, role-based solution for IT Infrastructure Automation & Compliance.
The workflow offers different users options at their own level:
-
Non-expert users can define parameters in a central interface, and Rudder will automatically make sure that your IT services are installed, configured, running and in good health. All actions (checks, warnings, fixed errors…) are reported upon immediately in the user interface, keeping drift from nominal behaviour low.
-
Expert users can configure how to implement these parameters on different systems, or build upon the pre-defined library provided using the CLI or API.
-
Managers can consult compliance reports and access audit logs.
Rudder is an established project with several 10000s of node managed, in companies from small to biggest-in-their-field. Typical deployments manage 100s to 1000s of nodes. The biggest known deployment in 2016 is about 7000 nodes.
-
Web interface to manage nodes and define policies
-
Continuously assesses drift compared to defined policies (with or without auto-healing)
-
Optionally, continuously enforces configuration over time (configuring once is good, ensuring configuration is always valid and automatically fixing it is better)
-
Inventory of all managed nodes
-
Compliance reporting, by configuration and/or by node, with possibility to drill down in non-compliance issues to identify the root problem.
-
Automate common system administration tasks (installation, configuration)
-
Full REST API to interact with the Rudder server
Tip
|
Rudder is open source – we welcome ideas, comments, criticism, patches and any other contributions! So get chatting with our community on IRC! |
Rudder site | |
User documentation | |
API documentation | |
Mailing list, IRC |
https://www.rudder-project.org/site/community/mailing-lists/ |
Bug report |
http://www.rudder-project.org/redmine/projects/rudder/issues |
Source |
You can see a demo version of Rudder: http://demo.rudder-project.org/
Just want to test Rudder without worrying about a full installation, but with real virtual machines so that you can actually configure and test things, unlike the demo? We provide a Vagrant set-up. See Rudder Vagrant page for getting started with Rudder on Vagrant.
Rudder test framework is a tool that allows to define full environnements and set them up for you. For example, you can define a platform with a Rudder server on Debian stable, 2 nodes on CentOS connected to it, and a Rudder Relay Server with its own 2 Debian nodes in 3 lines of configuration and commands.
See https://github.com/Normation/rudder-tests for more information.
The easiest way to test and use Rudder for prototyping or production is to install it from the provided Linux packages. For the server, the main current .rpm-based (RedHat, CentOS, SLES) and .deb-based (Debian, Ubuntu) distributions are supported. See https://www.rudder-project.org/site/get-rudder/downloads/ for details about repository and available versions.
Rudder agent is extremely versatile and packages are available for a wide range of versions of RedHat, CentOS, SLES, Debian and Ubuntu (like RHEL3 or Debian Lenny).
It works on other distributions as well, like Slackware, Raspbian and other embedded Linux on ARM/x86, Android, FreeBSD but no ready-to-use packages are provided today.
Normation offers AIX, Solaris and Windows agents.
Rudder is supported by Normation http://www.normation.com/en/rudder/
The list of contributors is available in https://github.com/Normation/rudder/graphs/contributors
This project is licensed under GPLv3 license, see the provided "LICENSE" file or http://www.gnu.org/licenses/gpl-3.0.txt
We added an extension to the main GPLv3 license to allows to build and use plugins on top of Rudder with any license, open source or closed/proprietary, see: https://github.com/Normation/rudder/blob/master/LICENSE_EXCEPTION
Thank you for your interest in our project!
We welcome pull requests on any of the Rudder repositories.
The contribution process is detailed here: http://www.rudder-project.org/HowToContribute
Rudder is now composed of several projects:
Component | Description and GitHub Projects |
---|---|
Rudder documentation |
We have a project for main documentation and API documentation: https://github.com/Normation/rudder-doc https://github.com/Normation/rudder-api-doc |
Rudder agent |
This project contains the CLI for Rudder agent https://github.com/Normation/rudder-agent |
Rudder Techniques |
Provided Techniques coming in the base set-up of Rudder https://github.com/Normation/rudder-techniques |
ncf framework |
A powerful and structured CFEngine framework used to build Rudder Techniques https://github.com/Normation/ncf |
Rudder server |
This is the Scala web application responsible for policy definition and generation by node, and compliance reporting. It also manages node inventories. It is composed of several Scala projects: https://github.com/Normation/rudder-parent-pom https://github.com/Normation/rudder-commons https://github.com/Normation/scala-ldap https://github.com/Normation/cf-clerk https://github.com/Normation/rudder https://github.com/Normation/ldap-inventory |
Rudder packages |
This project contains all the logic to build both server and agent packages for Rudder https://github.com/Normation/rudder-packages |
Rudder tools |
Nice tools around Rudder https://github.com/Normation/rudder-tools |
Rudder plugins |
Plugin examples: https://github.com/Normation/rudder-plugin-helloworld https://github.com/Normation/rudder-plugin-external-node-information https://github.com/Normation/rudder-plugin-itop |
This Scala web application is managed with Maven software project management (http://maven.apache.org/). You will need a working Maven 3.x.x installation.
We are working on a public artefact repository for Rudder, so for now you will need to build all dependencies for the Scala web application yourself. You can create a script with the following lines:
$ echo clone-build-rudder.sh
#!/bin/sh BASE="$PWD" REPOS="rudder-parent-pom rudder-commons scala-ldap ldap-inventory rudder" for i in ${REPOS}; do echo "\e[0;32mCloning ${i}\e[0m" git clone https://github.com/Normation/$i.git P=${BASE}/${i} cd ${P} echo "\e[0;32mBuilding ${P}\e[0m" mvn install done