forked from Normation/rudder
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
45 additions
and
184 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,217 +1,78 @@ | ||
= Rudder: Continuous Auditing & Configuration | ||
|
||
image::readme-resources/color_logo_horizontal_small.png[Rudder] | ||
|
||
Continuous configuration for effective compliance | ||
------------------------------------------------- | ||
|
||
image:https://badges.gitter.im/normation/rudder.svg[link="https://gitter.im/normation/rudder?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge"] | ||
|
||
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. | ||
image:https://img.shields.io/badge/chat-with the community-brightgreen.svg?style=flat[link="https://docs.rudder.io"] | ||
image:https://img.shields.io/badge/read-the documentation-green.svg?style=flat[link="https://docs.rudder.io"] | ||
image:https://img.shields.io/badge/open-an issue-blue.svg?style=flat[link="https://issues.rudder.io"] | ||
image:https://img.shields.io/badge/visit-our website-blueviolet.svg?style=flat[link="https://issues.rudder.io"] | ||
image:https://img.shields.io/badge/donate-to support development-yellow.svg?style=flat[link="https://salt.bountysource.com/teams/rudder"] | ||
image:https://img.shields.io/twitter/follow/rudderio.svg?style=social[link="https://twitter.com/rudderio"] | ||
|
||
Rudder is an easy to use, web-driven, role-based solution for IT Infrastructure Automation & Compliance. | ||
|
||
image::readme-resources/dashboard.png[Rudder Dashboard] | ||
|
||
=== Feature overview | ||
|
||
* Web interface to manage nodes and define policies | ||
** https://www.rudder-project.org/site/documentation/screenshots/ | ||
* 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 | ||
https://www.rudder-project.org/site/support/chat-mailing-lists/[on IRC]! | ||
|
||
=== Documentation and community | ||
|
||
[horizontal] | ||
Rudder site:: http://rudder-project.org | ||
User documentation:: https://docs.rudder.io/ | ||
API documentation:: https://docs.rudder.io/api | ||
Mailing list, IRC:: https://www.rudder-project.org/site/community/mailing-lists/ | ||
Bug report:: http://www.rudder-project.org/redmine/projects/rudder/issues | ||
Source:: https://github.com/Normation/rudder | ||
''' | ||
|
||
* Rudder has several components: | ||
=== Testing and installing Rudder | ||
** A central server that defines the configurations to apply and collects application reports, with a focus on continuously checking configurations and centralising real-time status data. A graphical builder lowers the technical level required to define policies. Each policy can be independently set to be automatically checked or enforced on a policy or host level. | ||
|
||
==== 5 minute tests | ||
** Agents installed on the managed nodes. As they are very lightweight (10 to 20 MB of RAM at peak) and blazingly fast (it’s written in C and takes less than 10 seconds to verify 100 rules), they run on almost every kind of device, so you’ll be managing physical and virtual servers in the data center, cloud instances, and embedded IoT devices in the same way. Installation is self-contained, via a single package, and can auto-update to limit agent management burden. | ||
|
||
===== Demo site | ||
** (optional) Relay servers that allows managing nodes in different networks, or on different site through a single entry point. | ||
|
||
You can see a demo version of Rudder: http://demo.rudder-project.org/ | ||
* Rudder is designed for critical environments where a security breach can mean more than a blip in the sales stats. Built-in features include change requests, audit logs, and strong authentication. | ||
===== Vagrant | ||
* The workflow offers different users options at their own level: | ||
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 https://github.com/Normation/rudder-vagrant[Vagrant set-up]. | ||
See https://www.rudder-project.org/site/get-rudder/vagrant/[Rudder Vagrant page] | ||
for getting started with Rudder on Vagrant. | ||
** 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 Test Framework (rtf) | ||
Rudder is an established project with several tens of thousands of managed nodes, in companies from small to biggest-in-their-field. Typical deployments manage 100s to 1000s of nodes. The biggest known deployments are about 10k nodes on a single Rudder server. | ||
|
||
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. | ||
→ Read more about Rudder features https://www.rudder.io/en/discover/what-is-rudder/[on our website]. | ||
|
||
See https://github.com/Normation/rudder-tests for more information. | ||
== Test Rudder | ||
|
||
==== Installing on real environments | ||
* You can see a https://demo.rudder.io[demo version of Rudder] with fake nodes and compliance data. | ||
* Get started with a https://docs.rudder.io/get-started/current/index.html[step-by-step guide] to setup a test environment and learn how to configure simple rules! | ||
* *Get in touch*: if you encounter any problem while testing or have any question, https://chat.rudder.io[come chat with the community]! | ||
|
||
===== Linux server packages | ||
== Installation | ||
|
||
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. | ||
* Read about the https://docs.rudder.io/reference/current/installation/operating_systems.html[compatible operating systems] and the https://docs.rudder.io/reference/current/installation/requirements.html[requirements] before starting | ||
* For a quick installation, we provide an https://docs.rudder.io/reference/current/installation/quick_install.html[automated installation script] | ||
* For a complete installation, follow the https://docs.rudder.io/reference/current/installation/server/debian.html[documentation] | ||
|
||
===== Rudder agent packages | ||
== Links | ||
|
||
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). | ||
[horizontal] | ||
Website:: https://www.rudder.io | ||
Documentation:: https://docs.rudder.io | ||
API documentation:: https://docs.rudder.io/api | ||
Chat:: https://chat.rudder.io | ||
Bug report:: https://issues.rudder.io/projects/rudder/issues | ||
Source:: https://github.com/Normation/rudder | ||
|
||
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. | ||
== Contribute | ||
|
||
Normation offers AIX, Solaris and Windows agents. | ||
Thank you for your interest in our project! We welcome pull requests on any of the Rudder repositories. | ||
|
||
Rudder is composed of https://www.rudder.io/en/expand/contribute/#panel-2422-6-0-0[several sub-projects]. The contribution process is detailed https://www.rudder.io/en/expand/contribute/[on our website]. | ||
|
||
=== Authors | ||
== Authors | ||
|
||
Rudder is supported by Normation http://www.normation.com/en/rudder/ | ||
Rudder is supported by https://www.rudder.io/en/company/about-us/[Normation]. | ||
|
||
The list of contributors is available in https://github.com/Normation/rudder/graphs/contributors | ||
|
||
== License | ||
|
||
=== License | ||
|
||
This project is licensed under GPLv3 license, see the provided "LICENSE" file or | ||
http://www.gnu.org/licenses/gpl-3.0.txt | ||
This project is licensed under GPLv3 license, see the provided https://github.com/Normation/rudder/blob/master/LICENSE[LICENSE] (or | ||
its http://www.gnu.org/licenses/gpl-3.0.txt[source]). | ||
|
||
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 | ||
|
||
=== Contributing | ||
|
||
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 components and projects overview | ||
|
||
==== Functional Components | ||
|
||
image::readme-resources/rudder-functional-component-diagram.png[Rudder Functional Components] | ||
|
||
==== Projects | ||
|
||
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 | ||
|
||
|==== | ||
|
||
|
||
.On a more 'developer oriented' usage on this repository only (not as Rudder as a whole): | ||
|
||
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. | ||
|
||
.Clean, build and install on your local repository: | ||
|
||
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 | ||
---- | ||
on top of Rudder with any license, open source or closed/proprietary, see the https://github.com/Normation/rudder/blob/master/LICENSE_EXCEPTION[LICENSE_EXCEPTION]. |