Outils pour utilisateurs

Outils du site


doc:rancid

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 que show running-config ne renvoie rien.

Configuration

  • Éditer la configuration /etc/rancid/rancid.conf
    • Vérifier l'emplacement du BASEDIR
    • Changer RCSSYS=CVS; en RCSSYS=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 comme BASEDIR 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 (dans CVS/<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 !

doc/rancid.txt · Dernière modification: 2017/11/14 21:14 par simon.leder