Table des matières
Rancid
Création du serveur : 14 Novembre 2017
Auteurs : Thomas 'Nymous' Gaudin & Simon 'Ziman' Leder
Rôle : Sauvegarde des configuration des switchs
Données techniques
OS : Debian 8
- rancid (installé depuis les jessie-backports)
- git
Spécifications techniques :
- 1 vCPU
- 512 Mo RAM
- 8 Go mémoire
Installation
- Activer les jessie-backports en créant un fichier
/etc/apt/sources.list.d/jessie-backports.list
avec le contenu suivant :
deb http://ftp2.fr.debian.org/debian jessie-backports main
(Vérifier avant que la version dans les dépôts officiels de debian n'a pas été mise à jour, à cette date c'est la 3.5.1.)
- Installer rancid grâce à
apt -t jessie-backports install rancid
- Installer git
Préparation d'un switch (Cisco) pour test
- Se connecter au switch en question.
- Entrer en mode configuration avec
conf ter
- Ajouter l'utilisateur en lecture seule
username rancid privilege 3 secret <rancidpassword>
- Autoriser l'affichage de la conf par
rancid
privilege exec level 3 show running-config view full
- Vérifier en se connectant au switch en tant que rancid qu'on peut bien lancer la commande
show running-config view full
, et queshow running-config
ne renvoie rien.
Configuration
- Éditer la configuration
/etc/rancid/rancid.conf
- Vérifier l'emplacement du
BASEDIR
- Changer
RCSSYS=CVS;
enRCSSYS=git;
- Définir les différents groupes de switchs à sauvegarder (pour tout sauvegarder, j'ai créé un seul groupe appelé de manière très originale “Switchs”) :
LIST_OF_GROUPS=“Switches”;
- Se connecter en tant que l'utilisateur
rancid
(su rancid
) - Se déplacer dans le home de l'utilisateur (
cd
), qui devrait être/var/lib/rancid
(ça doit aussi être le même que celui défini commeBASEDIR
dans la conf, si l'un des deux change il faut changer l'autre !!) - Lancer
./bin/rancid-cvs
(si la commande n'est pas trouvée, les binaires sont dans/usr/lib/rancid/bin
, mais normalement un lien symbolique a été créé). La commande va créer les différents répertoires pour les git, les fichiers de conf par groupe de switches définis plus haut. - Éditer le fichier
.cloginrc
(toujours dans/var/lib/rancid
).
# Login configuration # Thomas 'Nymous' Gaudin, 08/01/2017 add autoenable * 1 add method * ssh add timeout * 90 add user * rancid add password * rancidpassword # Si besoin d'être admin sur le switch # Commenter la ligne autoenable dans ce cas #add user * rezoleo #add password * rezoleopassword enablepassword # Pour renseigner le mot de passe pour un switch en particulier #add user 172.30.64.22 rancid #add password 172.30.64.22 rancidpassword
La ligne autoenable
indique à rancid qu'il ne doit pas tenter de gagner des privilèges supplémentaires à la connexion (commande enable
en Cisco). Mettre à 1 si jamais le compte avec lequel il se connecte peut afficher la conf, mettre à 0 s'il faut faire des opérations en tant qu'admin.
La ligne timeout
est très importante, par défaut rancid n'attend pas assez et croit que les switchs sont inaccessibles.
- Éditer le fichier
<nom du groupe de switches>/router.db
# On peut utiliser des noms DNS swb2;cisco;up # Ou des adresses IP 172.30.64.23;cisco;up
Attention, ce sont bien des ;
et non des :
! (L'ancienne version de rancid utilisait des :
)
Bien penser à indiquer up
à la fin de chaque switch qu'on veut sauvegarder ; on peut les passer en down
pour que rancid remarque qu'il ne doit plus s'en occuper mais qu'il conserve leur conf dans le git (si on retire la ligne du switch, rancid considère qu'il n'existe plus et le supprime).
- Tester avec
./bin/clogin <nom DNS ou IP du switch>
qu'on peut bien se connecter. - Faire un run complet de test avec
./bin/rancid-run
. Normalement, on reçoit un mail avec les diff depuis la dernière sauvegarde, et le git se remplit (dansCVS/<nom du groupe de switches>
. Si ça ne marche pas, regarder dans les logs, regarder l'output de la commande, regarder le mail envoyé…
Automation
Si tout marche bien, c'est parti pour automatiser tout ça ! On crée le compte rancid sur tous les switchs comme décrit plus haut, on met tous les switchs dans Switches/router.db
et tous les mots de passe dans .cloginrc
, on met le rancid-run
dans cron ou anacron, et roulez jeunesse !