Featured image of post Premiers pas avec Rudder - Installation

Premiers pas avec Rudder - Installation

Ecrit par ~ zwindler ~

Cet article fait partie d’une suite d’articles sur Rudder. La version qui est testĂ©e ici sera la version open source (car je n’ai pas les moyens de me payer une licence pour mon infra perso 😛) :

Note : une fois de plus, je tiens Ă  prĂ©ciser qu’il ne s’agit PAS d’un article sponsorisĂ©. J’ai eu des contacts (techniques) avec la team Rudder, mais je n’ai Ă©tĂ© influencĂ© d’aucune maniĂšre, en particulier dans la rĂ©daction de cet article.

Mais d’abord, c’est quoi Rudder ?

Rudder est un logiciel open-source de gestion de configuration et d’automatisation des systĂšmes, qui permet aux administrateurs systĂšme de contrĂŽler et de gĂ©rer leurs infrastructures de maniĂšre industrialisĂ©e. Il est en grande majoritĂ© Ă©ditĂ© par la sociĂ©tĂ© Normation, qui vend du support et des fonctionnalitĂ©s complĂ©mentaires (plugins).

Pendant longtemps, j’ai un peu mis de cĂŽtĂ© Rudder, pensant que ce n’Ă©tait pas pour moi, surtout que j’avais investi beaucoup de temps dans Ansible (vous trouverez mes nombreux articles sur le sujet ici).

Cependant, ce qui fait Ă  la fois la force et la faiblesse d’Ansible, c’est le fait qu’il soit agentless. On peut lancer nos playbooks depuis n’importe quelle machine, mais ça veut aussi dire qu’il n’y a pas a priori de machine privilĂ©giĂ©e pour garder notre infra conforme dans la durĂ©e.

Alors oui, je sais qu’on va me rĂ©torquer qu’il existe Tower/AWX, mais je n’ai pas du tout apprĂ©ciĂ© l’expĂ©rience le peu que je l’ai testĂ©, au point de ne pas vouloir l’utiliser ni au travail, ni en perso. En particulier en perso, je trouve l’outil lourd et pas adaptĂ© pour mon objectif : garantir la conformitĂ© de mes quelques machines.

ParallĂšlement Ă  ça, Rudder fonctionne avec un agent, et il y a un serveur centralisĂ© qui contrĂŽle les serveurs enregistrĂ©s. On peut consulter le tout dans une interface web et on voit en un clin d’oeil si les serveurs sont conformes ou pas.

Sans juger de l’expĂ©rience avec des centaines voire des milliers de serveurs, ça me parait adaptĂ© pour mon besoin perso (gĂ©rer une flotte de quelques machines voire dizaines de machines).

Installation du serveur

Je vais essayer de ne pas passer trop de temps sur cette partie. Elle a déjà été détaillée récemment par Stéphane Robert sur son blog et par Nidouille en stream la semaine derniÚre.

Grosso modo, j’ai popĂ© une VM chez nua.ge en Ubuntu 22.04 avec 2 CPU et 2 Go de RAM, suivi la documentation officielle d’installation et basta.

sudo apt update
sudo apt upgrade

sudo wget --quiet -O /etc/apt/trusted.gpg.d/rudder_apt_key.gpg "https://repository.rudder.io/apt/rudder_apt_key.gpg"
echo "deb http://repository.rudder.io/apt/7.2/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/rudder.list
(output) deb http://repository.rudder.io/apt/7.2/ jammy main

sudo apt update

Note : j’Ă©tais assez content de voir dans la doc officielle que pour quelques nodes, 2 CPU / 2 Go de RAM suffisent (surtout qu’il y a une JVM, donc la conso RAM aurait pu ĂȘtre bien plus importante).

On nous conseille Ă©videmment de vĂ©rifier que la clĂ© correspond Ă  celle indiquĂ©e dans la documentation officielle, puis on l’ajoute (affichĂ©e au moment de l’apt update) et on installe le package contenant le serveur.

apt install rudder-server

Une fois installĂ©, la premiĂšre chose Ă  faire est de crĂ©er un utilisateur admin, puis on peut se connecter sur l’IP du serveur en HTTPS/443 (certificat autosignĂ© par contre, faudra que je regarde comment ajouter du let’s encrypt).

ubuntu@rudder:~$ sudo rudder server create-user -u toto
New password: 
Re-type new password: 
User 'toto' added, restarting the Rudder server

CĂŽtĂ© sĂ©curitĂ© rĂ©seau, il va falloir ouvrir les ports 443 (obviously) mais aussi le 5309 pour que ça marche bien ( pour la partie “Fetch policy”, je vous laisse aller lire la doc).

Installation des agents

MĂȘme topo pour les agents, j’ai suivi la doc.

On peut donc installer simplement un agent sur nos serveurs en ajoutant la clé + le repo de rudder, puis en lançant la commande

sudo wget --quiet -O /etc/apt/trusted.gpg.d/rudder_apt_key.gpg "https://repository.rudder.io/apt/rudder_apt_key.gpg"
echo "deb http://repository.rudder.io/apt/7.2/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/rudder.list
sudo apt update && sudo apt install rudder-agent

A partir de lĂ , l’agent ne sait pas oĂč il doit s’enregistrer. On ajoute l’agent au serveur Rudder :

sudo rudder agent policy-server <IP.Du.Rudder.Server>

Petite subtilitĂ©, je n’ai pas eu besoin de faire cette Ă©tape dans un premier temps, car il se trouve que par dĂ©faut, les agents cherchent sur le LAN une machine s’appelant “rudder”. J’Ă©tais donc un poil surpris de ne pas voir cette info dans la doc (il faut que je fasse une PR pour corriger ça).

On vérifie ensuite que tout fonctionne :

sudo rudder agent inventory
Rudder agent 7.2.4
Node uuid: 72577f55-46b0-47e2-acd0-2eeb45353122
M| State         Technique                 Component                 Key                Message
E| compliant     Common                    Compute inventory splay                      Scheduling rudder_run_inventory was correct
E| compliant     Inventory                 Inventory                                    The inventory has been successfully sent
info     Rudder agent was run on a subset of policies - not all policies were checked

## Summary #####################################################################
2 components verified in 3 directives
   => 2 components in Enforce mode
      -> 2 compliant
Execution time: 10.67s
################################################################################

Note : On prendra Ă©videmment garde Ă  ne pas ouvrir les ports des serveur/agents Rudder sur Internet et Ă  utiliser des IPs locales et/ou des firewalls pour filtrer proprement tout ça. On pourra aussi utiliser un VPN, mais il ne faudra pas oublier d’autoriser les IPs des machines distantes dans Rudder (on en reparlera).

Accepter les machines dans notre inventaire

Un point qui n’Ă©tait pas super clair pour moi dans la doc de Quickstart d’installation des agents, est qu’une fois que les agents Ă©taient installĂ©s, il faut les autoriser cĂŽtĂ© serveur. C’est logique (on ne veut pas autoriser n’importe qui) mais la doc mĂ©ritera une petite suggestion de ma part je pense.

Ce point est dĂ©taillĂ© dans une autre partie de la documentation Node management / Accept new nodes, mais mĂȘme cette partie de la documentation ne semble pas Ă  jour, car je n’ai pas vu de menu “Navigate to Node Management → Accept new Nodes.”

On a en revanche un menu “Pending nodes” oĂč on retrouve une liste de tous les agents fraichement installĂ©s en attente.

La suite ?

A partir de lĂ , on a installĂ© tout ce qu’on avait besoin d’installer pour commencer Ă  jouer avec Rudder.

Cependant, on est déjà à 8000 signes et entamer la partie configuration dans cet article me parait lourd.

Je vais arrĂȘter ici pour aujourd’hui et publier dans un prochain article (semaine prochaine surement) comment crĂ©er des groupes, ce que sont les rules et les directives en un seul et mĂȘme bloc (ça sera plus cohĂ©rent).

En attendant, have fun !

Généré avec Hugo
ThÚme Stack conçu par Jimmy