Revision 2bc92b4a
Added by François ARMAND almost 7 years ago
00_introduction/01_presentation.txt | ||
---|---|---|
|
||
image::./images/dashboard-overview.png[Rudder dashboard]
|
||
|
||
==== Made for the Production
|
||
==== Made for production environments
|
||
|
||
We believe that there is a growing impedence mismatch between the Short Time of
|
||
application development and deployement, and the Long Time of the infrastructure.
|
00_introduction/20_key_features.txt | ||
---|---|---|
to execute.
|
||
|
||
Rudder is natively integrated with the supported OS (Linux, Windows, AIX - see
|
||
[TODO]) so that it provides generic, abstract, OS independant primitives to the
|
||
user who can:
|
||
<<node-supported-os>>) so that it provides generic, abstract, OS independant
|
||
primitives to the user who can:
|
||
|
||
image::./images/introduction/core_techniques.png["Standard Technique Library", float="right"]
|
||
|
||
... | ... | |
* manage service start-up at boot time and ensure that a service is correctly
|
||
running at any time, starting it up again if needed.
|
||
|
||
The simple primitives can be simply mixed and todo_link[extended] to provide
|
||
unfloat::[]
|
||
|
||
The simple primitives can be simply mixed and <<intro-rudder-extensibility,extended>> to provide
|
||
solutions for any and all of your unique use cases of software stacks,
|
||
deployments, IT services or configuration that can't be natively supported.
|
||
|
||
... | ... | |
linked to the kind of server (physical or virtual), the quantity of RAM
|
||
available, the version of an OS library which contains a security bug, etc.
|
||
|
||
All of these data are also available throught Rudder APIs (see link[TOTO]).
|
||
All of these data are also available <<rudder-api-integration, throught Rudder APIs>>.
|
||
|
||
==== REST API
|
||
|
||
All Rudder commands are available throught an exhaustive REST API. That API is
|
||
http://www.rudder-project.org/rudder-api-doc/[fully documented online] and can
|
||
be used to todo_link[quickly and smoothly integrate Rudder with you existing infrastructure].
|
||
be used to <<rudder-api-integration, quickly and smoothly integrate Rudder with you existing infrastructure>>.
|
||
|
||
|
||
==== Audit trace and Change Requests
|
||
... | ... | |
|
||
The validation process can be externalized to third party ticketing system, like
|
||
a CMDB, so that it can integrated into an existing company workflow. This
|
||
integration is done thanks to link_toward_thir_party_integration[an existing
|
||
plugin or a dedicated synchronisation tool].
|
||
integration is done thanks to <<rudder-integration, an existing
|
||
plugin or a dedicated synchronisation tool>>.
|
||
|
||
==== Centralized authentication (LDAP, Active Directory, plugins)
|
||
|
||
... | ... | |
or be connected to an SSO to manage users authentication.
|
||
|
||
Moreover, Rudder authentication layer is plugable and can be extended to other
|
||
authentication protocol link_to_plugins[like Radius or SPNEGO with plugins].
|
||
authentication protocol <<extending-rudder-with-plugins, like Radius or SPNEGO with plugins>>.
|
||
|
||
[[intro-rudder-extensibility]]
|
||
==== Extensibilty
|
||
|
||
Rudder has a built-in library of common software components and configuration.
|
||
... | ... | |
unitary modules. Rudder agent is able to translate these abstract modules to
|
||
native OS specific commands and configurations.
|
||
|
||
Module are atomic tasks, that can be extremelly simple (for example, check the
|
||
Modules are atomic tasks, that can be extremelly simple (for example, check the
|
||
existence of a file, create an user or a group, update a software package) or
|
||
more complexe (for example, import JSON data from a REST API).
|
||
For information, the following image provides a NON-exhaustive list of
|
||
... | ... | |
|
||
image::./images/introduction/rule_directive_generic_method_stack.png[Build your own configuration, matching your requirements]
|
||
|
||
The unitary configuration module can be configured thanks to a high level
|
||
The unitary configuration modules can be configured thanks to a high level
|
||
programming language:
|
||
|
||
image::./images/introduction/ncf_language.png[high level definition language]
|
00_introduction/40_architecture_and_dependencies.txt | ||
---|---|---|
[[architecture]]
|
||
=== Technical architecture and software dependencies
|
||
|
||
==== Functionnal architecture of Rudder
|
||
==== Functional architecture of Rudder
|
||
|
||
Rudder contains several functionnaly independant components, illustrated in the diagram below:
|
||
Rudder contains several functionaly independant components, illustrated in the diagram below:
|
||
|
||
* Inventory database
|
||
* Configuration policies database
|
||
... | ... | |
* Node interface: inventory reception, state reports reception, configuration policy sharing
|
||
* Relay server to centralize networks flows of an isolated network zone
|
||
|
||
image::./images/introduction/rudder_functional_component_diagram-simple-v1.png[Rudder functionnal architecture]
|
||
image::./images/introduction/rudder_functional_component_diagram-simple-v1.png[Rudder functional architecture]
|
||
|
||
==== Network architecture in client/server mode
|
||
|
||
... | ... | |
and communicates with them. The connection frequency from nodes to server is configurable, from several
|
||
minutes to several hours.
|
||
|
||
The following schema shows the network architecture of a Rudder installation:
|
||
The following diagram shows the network architecture of a Rudder installation:
|
||
|
||
image::./images/introduction/network_connections.png[Network architecture]
|
||
|
10_installation/10_install_server/00_install_intro.txt | ||
---|---|---|
specification of the underlying server, to the initial setup of the application.
|
||
|
||
Before all, you need to setup a server according to
|
||
<<Server_supported_OS, the server specifications>>. You should also
|
||
<<configure_the_network, configure the network>>. These topics are covered in the
|
||
<<server-supported-os, the server specifications>>. You should also
|
||
<<configure-the-network, configure the network>>. These topics are covered in the
|
||
Architecture chapter.
|
||
|
||
Ideally, this machine should have Internet access, but this is not a strict requirement.
|
10_installation/10_install_server/13_install_root_server_centos_rhel.txt | ||
---|---|---|
|
||
On Red Hat-like systems, a firewall setup is enabled by default, and would need to be adjusted
|
||
for Rudder to operate properly. You have to allow all the flows described in the
|
||
<<configure_the_network, Network>> section.
|
||
<<configure-the-network, Network>> section.
|
||
|
||
|
||
[TIP]
|
10_installation/11_install_agent/00_install_agent.txt | ||
---|---|---|
installation.
|
||
|
||
To get the list of supported Operating systems, please refer to
|
||
<<nodes_supported_OS, the list of supported Operating Systems for the Nodes>>.
|
||
<<node-supported-os, the list of supported Operating Systems for the Nodes>>.
|
||
|
||
=====
|
||
|
20_usage/10_web_interface.txt | ||
---|---|---|
|
||
The Administration section provides some general settings: you can setup the
|
||
available networks for the Policy Server, view the event logs and manage your
|
||
plugin collection.
|
||
plugins collection.
|
||
|
||
.Settings screen
|
||
|
43_advanced_administration/992_inventory.txt | ||
---|---|---|
|
||
There are plugins for Rundeck and Ansible that can be used with each tool to make
|
||
them aware of inventory data from Rudder. For more information, see details in
|
||
the <<rudder_integration_in_infrastructure, Third party integration with Rudder>>
|
||
the <<rudder-integration, Third party integration with Rudder>>
|
||
paragraph.
|
||
|
80_extension_and_integration/20_Rudder_plugins.txt | ||
---|---|---|
==== Rudder Plugin
|
||
|
||
A plugin is an archive in the `.rpkg` file format that can be manipulated with the
|
||
`rudder-pkg` command (see <<rpkg_plugin_management, Plugins Administration>>)
|
||
`rudder-pkg` command (see <<plugins-management, Plugins Administration>>)
|
||
|
||
A Rudder plugin has full access to all Rudder internal APIs, datas, and process.
|
||
Its power is very large, but some care must be taken to ensure that the plugin
|
||
... | ... | |
That is why we prefer to build smaller plugin, adding only one feature, and
|
||
doing it in the least impacting way.
|
||
|
||
Here come a list of some plugin so that one can grasp the kind of feature that a
|
||
Here come a list of some plugins so that one can grasp the kind of feature that a
|
||
plugin can bring to Rudder:
|
||
|
||
===== Extending API: rudder-plugin-itop
|
||
... | ... | |
|
||
==== Building your own plugins
|
||
|
||
As of Rudder 4.1, there is no dedicated, frozen plugin API for plugins. A plugin
|
||
As of Rudder 4.1, there is no dedicated, frozen plugins API for plugins. A plugin
|
||
is built in Scala, and the normal starting point is to clone and study the
|
||
template plugin project,
|
||
https://github.com/normation/rudder-plugin-helloworld[rudder-plugin-helloworld].
|
||
... | ... | |
Of course, you can look to the other open source plugins listed above to get
|
||
other, more involved example about how to do things.
|
||
|
||
You also can interact with Rudder developpers throught the
|
||
You also can interact with Rudder developers throught the
|
||
https://www.rudder-project.org/site/community/mailing-lists/[community] regular
|
||
communication channels.
|
||
|
90_reference/05_inventory_workflow.txt | ||
---|---|---|
Rudder database (technically an LDAP server), waiting for later use.
|
||
|
||
The goal of that section is to detail the different steps and explain how to
|
||
spot and solve a problem on the inventory workflow. Following schema sum up
|
||
spot and solve a problem on the inventory workflow. Following diagram sum up
|
||
the whole process.
|
||
|
||
image:./images/rudder-inventory-workflow.png[Inventory workflow, from node to
|
90_reference/20_agent_data_workflow.txt | ||
---|---|---|
=== Rudder Agent workflow
|
||
=== Rudder Agent workflow
|
||
|
||
In this chapter, we will have a more detailed view of the Rudder Agent
|
||
workflow. What files and processes are created or modified at the installation
|
||
of the Rudder Agent? What is happening when a new Node is created? What are the
|
||
recurrent tasks performed by the Rudder Agent? How does the Rudder Server handle
|
||
the requests coming from the Rudder Agent? The Rudder Agent workflow schema
|
||
the requests coming from the Rudder Agent? The Rudder Agent workflow diagram
|
||
summarizes the process that will be described in the next pages.
|
||
|
||
["graphviz", "agent_workflow.png"]
|
||
... | ... | |
Let's consider the Rudder Agent is installed and configured on the new Node.
|
||
|
||
The Rudder Agent is regularly launched and performs following tasks
|
||
sequentially, in this order:
|
||
sequentially, in this order:
|
||
|
||
==== Request data from Rudder Server
|
||
|
xsl/index.html.tpl | ||
---|---|---|
<p>If you are new to Rudder you can follow these steps to discover and start using Rudder:</p>
|
||
<ul>
|
||
<li>Read <a href="_introduction.html">introduction</a> to get familiar with Rudder architecture and concepts.</li>
|
||
<li>Follow the <a href="_installation.html">installation</a> section wich explains the <a href="configure_the_network.html">requirements</a> and the installation steps for the different
|
||
<li>Follow the <a href="_installation.html">installation</a> section wich explains the <a href="configure-the-network.html">requirements</a> and the installation steps for the different
|
||
types of nodes:</li>
|
||
<ul>
|
||
<li>The central <a href="_install_rudder_server.html">server</a> </li>
|
||
... | ... | |
<li>Join the <a href="https://www.rudder-project.org/site/support/chat-mailing-lists/">IRC channel</a></li>
|
||
</ul>
|
||
<li>You need training, or commercial support? Normation provides <a href="http://www.normation.com/en/rudder/services/">services</a> for Rudder</li>
|
||
<li>Browse the <a href="http://www.rudder-project.org/foswiki/Development/WebHome">developper documentation</a> if you want to contribute or dive into Rudder internals</li>
|
||
<li>Browse the <a href="http://www.rudder-project.org/foswiki/Development/WebHome">developer documentation</a> if you want to contribute or dive into Rudder internals</li>
|
||
</ul></div>
|
Also available in: Unified diff
Fixes #10690: Bad links, typo, images in french in intro chapter