Forum Linux.général [Tuto/HowTo] Installer et configurer Rudder sur Ubuntu/Debian

Posté par . Licence CC by-sa.
7
27
avr.
2017

Sommaire

Introduction

Rudder est un logiciel libre permettant de centraliser la gestion de ses serveurs sur une interface web (WEBUI) et une API. Rudder utilise le moteur CFEngine et est une alternative à Ansible Tower, OpenStack ou encore Puppet.
Les agents s'exécutent sous formes de tâches planifiés (ils ne se lancent que tout les X temps configurable + random 4 minutes). Lorsque sur l'interface (WEBUI ou API REST) vous activez des directives, configurations, etc; ces actions ne sont lancées sur les Nodes qu'une fois les agents lancés par le planificateur de tâche (cron).
Enfin, sachez que lors de l'installation du serveur rudder, ce dernier va aussi installer l'agent rudder sur la machine et la connecter automatiquement au serveur. Ainsi vous pourrez aussi gérer la machine hébergeant rudder depuis sa WEBUI.

Rudder est un logiciel libre, son évolution nécessite votre participation : rapportez les bugs, aidez à l'évolution du code, contribuez financièrement, faites la promotion du logiciel et de ses alternatives libre contre les concurrents closed-sources (propriétaire), aidez les autres utilisateurs, etc.


Installer le serveur Rudder sur Ubuntu/Debian

Note : le serveur rudder n'est encore compatible avec raspbian.

  1. Passez en admin
sudo su
  1. Ajoutez la clés publique de rudder
wget --quiet -O- "https://www.rudder-project.org/apt-repos/rudder_apt_key.pub" | apt-key add -
  1. Ajoutez le dépôt
echo "deb http://www.rudder-project.org/apt-latest/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/rudder.list
  1. Mettez à jours la liste des logiciels
sudo apt-get update
  1. Lancez l'installation du server rudder
apt-get install rudder-server-root
  1. Changez le mot de passe de l’administrateur (admin) en éditant /opt/rudder/etc/rudder-users.xml
nano /opt/rudder/etc/rudder-users.xml
  • Sur la machine sur laquelle vous allez générer le mot de passe hashé, lancez cette commande une fois pour que votre terminal n'enregistre plus les commandes commençant par un espace jusqu'au prochain reboot (évitant ainsi d'enregistrer dans l'historique la commande contenant votre mot de passe)
export HISTCONTROL=ignorespace
  • Remplacez c7ad44cbad762a5da0a452f9e854fdc1e0e7a52a38015f23f3eab1d80b931dd472634dfac71cd34ebc35d16ab7fb8a90c81f975113d6c7538dc69dd8de9077ec par la chaîne (sans le -) que va sortir la commande suivante (que vous pouvez lancer sur n'importe quelle machine debian/ubuntu):

Note : n'oubliez pas l'espace juste avant la commande

 echo -n "monPassword" | shasum -a 512
  • monPassword => remplacez par le mot de passe que vous souhaitez utiliser
  • Notez que vous pouvez aussi changer le login (inscrivez le en claire (sans passer par le hashage))
  1. Relancez le service
service rudder-jetty restart

Installer le client Rudder sur Ubuntu/Debian

Note : le client rudder n'est encore packagé pour raspbian.

  1. Passez en admin
sudo su
  1. Ajoutez la clés d'authentification des paquets
wget --quiet -O- "https://www.rudder-project.org/apt-repos/rudder_apt_key.pub" | sudo apt-key add -
  1. Ajoutez le dépôt
echo "deb http://www.rudder-project.org/apt-latest/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/rudder.list
  1. Mettez à jours la liste des logiciels
apt-get update
  1. Lancez l'installation de l'agent rudder
apt-get install rudder-agent
  1. Ajoutez l'hostname utilisé pour joindre votre serveur rudder
echo 'HOSTNAME' > /var/rudder/cfengine-community/policy_server.dat
  1. Lancez le client rudder
rudder agent start
  1. Attendez quelques minutes puis rendez-vous sur la WEBUI de votre serveur rudder et acceptez la machine :)

  2. Sur la machine où vous avez installez le client rudder vous pouvez vérifier le fonctionnement

rudder agent status
rudder agent check

Foire Aux Questions

Peut-on exécuter des commandes sur une ou plusieurs machines ?

  • Réponse : Pas directement depuis un shell. Néanmoins on peut, dans Menu => Utilities => Technique editor, créer une Technique exécutant n"importe quelle commande. (voir screenshot suivant) DLFP

Quelles sont les pré-requis matériel/bandwidth pour genre 10 machines, 100 machines, 1000 machines ?

  • Réponse :

    • Pour la RAM
    • moins de 50 nodes: 2Go
    • entre 50 et 1000 nodes: 4Go
    • plus de 1000 nodes: 4Go + 1GB de RAM par 500 nodes au dessus de 1000.
    • Pour PostGreSQL
    • espace maximale consommé = nombre de Directives * nombre de Nodes * temps de rétention en jours * 400 ko

L'export des backups est-il automatisable via cron ?

Peut-on déployer des scripts ?

  • Réponse : Oui, par exemple avec la Technique "File download (Rudder server)" qui permet de télécharger sur les nœuds un fichier (ou dossier) présent dans /var/rudder/configuration-repository/shared-files sur le serveur Rudder.

Peut-on gérer les utilisateurs depuis la WEBUI ?

  • Réponse : Non.

Peut-on parcourir le système de fichier des machines/Nodes ?

  • Réponse : Non, sauf a créer un script dans les Directives. Vous disposez d'une liste des points de montages dans les informations de chaque Node.

Screenshot

screenshot smartphone rudder 4 dashboard

screenshot-2017_04_25-Rudder4-WEBUI-Directives_main

screenshot-2017_04_24-Rudder-Network

Screenshot_2017-04-27-WEBUI_rudder4_Node_liste

Screenshot_2017-04-27-WEBUI_rudder4_Node_Details_Summary


  • # Merci et quelques précisions

    Posté par . Évalué à 4.

    Merci pour ce joli tuto !

    Deux petites remarques :

    Attention : ils n'utilisent pas un dépôts "latest", en suivant ce tutoriel pensez donc a vérifier la version dans l'

    Il existe des dépôts latest, cf http://www.rudder-project.org/site/get-rudder/downloads/#current_releases. En l'occurrence c'est http://www.rudder-project.org/apt-latest/.

    Dans la première partie :

    Lancez l'installation de l'agent rudder

    C'est le serveur Rudder du coup :)

    • [^] # Re: Merci et quelques précisions

      Posté par . Évalué à -4.

      Merci pour ta correction.
      Le tuto va être bien plus adaptable au futurs lecteurs avec un dépôts latest :)

      Si vous avez des informations à ajouter au tuto, n'hésitez pas (je ne peux l'éditer que durant quelques jours) :)

      PS: dans les alternatives à rudder j'ai énoncé OpenStack, mais ce dernier étant une usine à gaz, ai-je eu raison? Auriez-vous d'autres alternatives libre à ajouter?

      Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat

  • # Moins violent qu'une suppression d'historique

    Posté par (page perso) . Évalué à 4.

    Avant la commande :

    $ echo -n "monPassword" | shasum -a 512

    Je préconise plutôt d'utiliser un : export HISTCONTROL=ignorespace (enfin si tu utilises Bash, sinon il y a certainement d'autres options pour ton shell).
    Cela permettra que toute commande commançant par un(e) espace ne sera pas stockée dans l'historique.

    Ce qui donnerait à peu près :

    $ export HISTCONTROL=ignorespace
    $  echo -n "monPassword" | shasum -a 512
    $ # Notez l'espace avant la commande précédente

    Ça te laissera tout ton historique intact.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.