Rancid (Really Awesome New Cisco confIg Differ) est un gestionnaire de configurations d'équipements réseau.
Principalement destiné aux administrateurs réseau, RANCID surveille la configuration d'un routeur ou plus généralement de périphérique réseau, y compris les logiciels et le matériel (cartes, numéros de série, etc.) et utilise CVS (Concurrent Version System), Subversion (SVN) ou Git pour maintenir l'historique des modifications.
Rancid prend actuellement en charge les équipements suivants :
Avant d'installer RANCID nous aurons besoin de certaine chose :
aptitude install cvs cvsweb expect make gcc apache2
Nous allons créer un login particulier rancid
pour la gestion de nos équipements réseaux :
groupadd rancid useradd -m -g rancid -s /bin/sh -b /usr/local rancid
Ensuite, il vous faudra télécharger les sources de RANCID disponible ici
wget ftp://ftp.shrubbery.net/pub/rancid/rancid-3.6.2.tar.gz tar -xvzf rancid-3.6.2.tar.gz cd rancid-3.6.2 ./configure --prefix=/usr/local/rancid/ make make install chown -R rancid:rancid /usr/local/rancid/
rancid
su rancid
Dans le répertoire /usr/local/rancid
, si votre prefix
durant l'installation est le même que dans mon exemple.
Le manque de caractère /
au début des chemins de fichier n'est pas une erreur.
L'installation terminé je vous invite donc dans le répertoire /usr/local/rancid
, en tant que login rancid
.
Rancid gère les équipements par groupe.
Ainsi, pour chaque groupe sont associés des équipements, et des utilisateurs pour la réception des rapports de sauvegarde.
Le fichier de configuration etc/rancid.conf
va nous permettre d'ajouter les groupes d'équipements, en définissant la valeur de LIST_OF_GROUPS
, chaque groupe étant séparé par un espace.
Voici un exemple :
LIST_OF_GROUPS="GR1 GR2 GR3 ..."
Quand vous avez fini la création de vos groupes, vous devrez à chaque fois exécuter cette commande pour créer les dépôts associés :
bin/rancid-cvs
La connexion aux équipements est assurée par le script clogin.
Ce script est appelé à chaque exécution de rancid-run
pour établir la connexion avec l'équipement, et consulte les paramètres d'authentification définis dans le fichier /usr/local/rancid/.cloginrc
.
La syntaxe de ce fichier offre une compatibilité avec de nombreux modes d'authentification.
Un exemple de configuration est disponible à l'emplacement suivant share/rancid/cloginrc.sample
.
Voici, un exemple :
#methode de connexion add method < [IP] ou DNS du ou des équipement visés > ssh add method < [IP] ou DNS du ou des équipement visés > telnet ##MON GR1 #Si, j'ai des équipements HP Procurve add autoenable < [IP] ou DNS du ou des équipement viser > 1 add user < [IP] ou DNS du ou des équipement visés > <login> add password < [IP] ou DNS du ou des équipement visés > <Mot de passe> ##MON GR2 #Si, j'ai des équipements CISCO add password < [IP] ou DNS du ou des équipement visés > <Mot de passe au moment de la connexion> <Mot de passe pour la commande ''enable''> ##GR3 #Si, j'ai des équipements Alcatel Omniswitch (je détails plus bas comment faire) add autoenable < [IP] ou DNS du ou des équipement visés > 1 add user < [IP] ou DNS du ou des équipement visés > <login> add password < [IP] ou DNS du ou des équipement visés > <Mot de passe>
Un exemple :
#methode de connexion add method *.ksh-linux.info ssh add method 192.168.1.* telnet ##MON GR1 #Si, j'ai des équipements HP Procurve add autoenable *.net-hp.ksh-linux.info 1 add user *.net-hp.ksh-linux.info admin add password *.net-hp.ksh-linux.info ksh ##MON GR2 #Si, j'ai des équipements CISCO add password *.net-cisco.ksh-linux.info ksh ksh ##GR3 #Si, j'ai des équipements Alcatel Omniswitch (je détails plus bas comment faire) add autoenable *.net-al.ksh-linux.info 1 add user *.net-al.ksh-linux.info admin add password *.net-al.ksh-linux.info ksh
Les actions de connexion sont faits, il reste à préciser la liste des équipements que RANCID devra traiter.
L'ajout des équipement s'effectue dans le fichier router.db
du groupe concerné.
Ainsi, pour le groupe GR1, le fichier se situe à l'emplacement var/GR1/router.db
.
Il est construit selon la syntaxe décrite ci-dessous :
[device];[type];[state];[comments]
exemple
vim CVS/GR1/router.db
Ajouter vos équipements réseaux :
sw01.net-hp.ksh-linux.info;hp;up;cœur de réseau du site A sw02.net-hp.ksh-linux.info;hp;up ...
Chaque groupe peut disposer d'une liste d'adresses mails ou d'alias correspondant aux adresses mails des destinataires de rapports de sauvegarde.
Pour chaque groupe, Rancid va considérer deux alias destinataires :
Il faut donc faire correspondre, pour ces alias, les destinataires réels à utiliser pour l'envoi de mails.
Cette correspondance s'effectue dans le fichier /etc/aliases
ou /etc/postfix/aliases
(pour postfix).
Une fois le fichier complété, le résultat devrait être similaire à cet exemple :
# See man 5 aliases for format postmaster:root rancid:mail@ksh-linux.info # # Rancid email addresses # rancid-admin-GR1:rancid rancid-GR1:rancid rancid-admin-GR2:rancid rancid-GR2:rancid rancid-admin-GR3:rancid rancid-GR3:rancid
Puis mettre à jour les alias :
newaliases /etc/init.d/postfix restart
Le lancement des sauvegardes des équipements est assuré par le script rancid-run
.
L'utilisation de cette commande sans paramètres déclenche la sauvegarde de tous les groupes d'équipements renseignés par la variable LIST_OF_GROUPS
dans le fichier de configuration etc/rancid.conf
.
Cependant, il est également possible de sauvegarder un groupe unique en le renseignant en paramètre.
exemple:
Pour tous les groupes
bin/rancid-run
Pour seulement le groupe GR1
bin/rancid-run GR1
Pour automatiser la sauvegarde de vos équipements, vous pouvez le faire au travers d'un crontab
:
Voici, un exemple avec le login rancid :
Penser à purger les logs de rancid :
30 00 * * * /usr/bin/find /usr/local/rancid/var/logs/ -type f -mtime +5 -exec /bin/rm -Rf {} \;
Nous allons configurer cvsweb
pour qu'il connaisse le chemin de notre répertoire rancid, pour cela nous allons modifier le fichier /etc/cvsweb/cvsweb.conf
:
@CVSrepositories = ( 'MES_SWITCHS' => ['MES_SWICTHS', '/usr/local/rancid/var/CVS'], #'local' => ['Local Repository', '/var/lib/cvs'],
Dans apache2 nous allons créer un hôte virtuelle, pour cela nous allons éditer un fichier rancid.conf
dans le répertoire /etc/apache2/sites-available
<VirtualHost *:80> ServerName <Serveur.votredomaine.com> DocumentRoot /var/www/html/cvsweb redirectmatch ^/$ /cgi-bin/cvsweb <Directory /var/www/cvsweb> Options +FollowSymLinks -Indexes AllowOverride None </Directory> # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel error ErrorLog ${APACHE_LOG_DIR}/rancid-error.log CustomLog ${APACHE_LOG_DIR}/rancid-access.log combined </VirtualHost>
Puis dans /var/www/html
nous allons faire un lien symbolique :
ln -s /usr/share/cvsweb cvsweb
Puis vous pouvez faire http://<Serveur.votredomaine.com> cela devrai afficher vos groupes, configurations et les révisions.
Pour cela télécharger le fichier alcatel-lucent.tar.gz
mv alcatel-lucent.tar.gz /usr/local/rancid/bin tar -xvzf alcatel-lucent.tar.gz rm alcatel-lucent.tar.gz chmod 755 alu* chown rancid:rancid alu*
Puis dans vos fichier router.db
vous aurez à faire cela :
Dans le fichier .cloginrc cela :
##GR3 #Si, j'ai des équipements Alcatel Omniswitch add autoenable *.net-alu.ksh-linux.info 1 add user *.net-alu.ksh-linux.info admin add password *.net-alu.ksh-linux.info ksh