Ceci est une ancienne révision du document !
RANCID : Really Awesome New Cisco confIg Differ
Rancid est un gestionnaire de configurations d'équipements réseau. Principalement destiné aux administrateurs réseau, il utilise une base CVS permettant de conserver un historique des configurations sauvegardées.
Pré-requis
- Disposer des droits d'administration.
- Disposer d'une connexion à Internet configurée et activée.
- Disposer de :
- cvs : base CVS pour gérer le suivi de versions
- cvsweb : interface web permettant d'accéder aux données CVS
- expect : outil d'automatisation permettant de dérouler des scénarios
Pour se faire vous pouvez installer les paquets cvs cvsweb expect.
La configuration de ces paquets est couverte dans cette page, il n'est donc pas nécessaire de se reporter à leurs pages respectives.
- Un serveur de mails doit également être configuré afin d'envoyer les rapports de sauvegardes aux mailing-lists associées aux groupes d'équipements → Installation d'un serveur mail.
Avant de poursuivre, il est important de tester la bonne configuration des services précédemment installés.
Pour vérifier le fonctionnement de cvsweb, accéder à la page web en local http://127.0.0.1/cgi-bin/cvsweb/. Le message d'erreur ci-dessous devrait apparaitre :
Error: No valid CVS roots found! See @CVSrepositories in the configuration file (/etc/cvsweb/cvsweb.conf).
Comme le message l'indique, le serveur CVS n'est pas configuré. Cette étape sera traitée dans la section Configuration de cvsweb.
Installation
Depuis les sources
Cette section décrit l'installation de Rancid depuis les sources disponibles sur le site de Shrubbery Networks, Inc..
Saisissez dans un terminal les commandes suivantes:
cd /usr/src/ wget ftp://ftp.shrubbery.net/pub/rancid/rancid-2.3.6.tar.gz tar xvzf rancid-2.3.6.tar.gz ./configure -prefix=/ sudo make install
Configuration
Emplacement des fichiers
Une fois installé, les dossiers et fichiers se retrouve comme suit :
- Scripts d'exécution :
/bin/[rancid-run,rancid-cvs,erancid,...]
- Fichier de configuration principal :
/etc/rancid.conf
- Base de données CVS :
/var/CVS
- Fichiers de configuration des groupes et des équipements :
/var/[GROUPE]
Configuration de cvsweb
Une première étape est la configuration du serveur cvsweb. En effet, il faut lui spécifier le répertoire racine qu'il doit utiliser.
Pour cela, il faut éditer avec les droits d'administration le fichier /etc/cvsweb/cvsweb.conf et ajouter un répertoire racine comme indiqué dans l'exemple ci-dessous :
@CVSrepositories = ( 'Rancid' => ['Rancid', '/var/CVS'], );
Création d'un groupe d'équipements
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.
Ici il s'agira de créer un premier groupe GRP_SW_1. Pour cela, modifier avec les droits d'administration le fichier de configuration /etc/rancid.conf et spécifier la valeur de LIST_OF_GROUPS :
LIST_OF_GROUPS="GRP_SW_1"
La commande suivante doit ensuite être utilisée pour créer ce groupe dans la base CVS.
sudo rancid-cvs
Désormais, le nouveau groupe doit apparaitre sur la page http://127.0.0.1/cgi-bin/cvsweb/.
Cette étape créé également un répertoire spécifique pour le groupe /var/GRP_SW_1, contenant les fichiers de configuration utilisés par Rancid. Ce répertoire dispose de droits d'accès restrictifs, à savoir "750" en octal, afin de protéger les différents paramètres d'authentification des équipements.
Ajouter un équipement dans un groupe
L'ajout d'équipements dans Rancid s'effectue avec les fichiers de configuration des groupes d'équipements et s'effectue en 2 étapes :
- ajouter les paramètres d'authentification
Configurer le groupe d'équipement
L'ajout de l'équipement s'effectue dans le fichier router.db du groupe concerné. Ainsi, pour le groupe GRP_SW_1, le fichier se situe à l'emplacement /var/GRP_SW_1/router.db.
Il est construit selon la syntaxe décrite ci-dessous : [device]:[type]:[state]:[comments]
- device : nom DNS ou IP de l'équipement.
- state : état de fonctionnement de l'équipement : [up/down]
- comments : commentaires. Ce champs est facultatif.
Paramètres d'authentification
La connexion aux équipements est assurée par le script clogin.
Définir la mailing-list d'un groupe
Chaque groupe peut disposer d'une liste d'adresses mails où d'alias correspondant aux adresses mails des destinataires de rapports de sauvegarde. Pour chaque groupe, Rancid va considérer deux alias destinataires :
- rancid-admin-[GROUPE]
- rancid-[GROUPE]
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. Une fois le fichier complété, le résultat devrait être similaire à cet exemple :
# Utilisateurs usr1:usr1@no-company.com usr2:usr2@no-company.com admin:dsi-isr-mailinglist@no-company.com # Alias utilisés par Rancid rancid-GRP_SW_1:admin,usr1,usr2 rancid-admin-GRP_SW_1:admin
Pour tester la messagerie, veuillez vous référer à la documentation de la solution de messagerie que vous avez installé.
Utilisation
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.
Ainsi, voici les 2 modes d'utilisation :
- tous les groupes d'équipements
rancid-run
- un groupe d'équipement
rancid-run [GROUPE]
Désinstallation
La suppression de Rancid dépend de la méthode d'installation. Cependant, dans les deux cas décrits ci-dessous les fichiers de configurations seront conservés.
Depuis les sources
Procéder comme indiqué ci-dessous :
cd /usr/src/rancid-2.3.6 make uninstall
Puis supprimer les paquets indiqués dans la section Installation s'ils ne sont plus requis ultérieurement. Le paquet expect est assez spécifique à l'utilisation de Rancid, il sera donc généralement à supprimer.
Par exemple avec l'outil apt-get, vous pouvez saisir dans un terminal:
sudo apt-get remove expect
Par ailleurs, si l'historique des configurations ainsi que l'accès via l'interface web doivent être conservés, les paquets cvs cvsweb ne doivent pas être supprimés.
Dans le cas contraire, par exemple avec l'outil apt-get vous pouvez saisir dans un terminal:
sudo apt-get remove cvs cvsweb
Dépannage
cvsweb
404 Not Found
En cas d'affichage de l'erreur 404 Not Found lors du chargement de la page web http://127.0.0.1/cgi-bin/cvsweb, cela signifie généralement que le serveur Apache2 est mal configuré. Dans ce cas, il faut vérifier :
- la présence du dossier cvsweb à l'emplacement /usr/lib/cgi-bin/
- les droits d'accès en 755 sur le répertoire /usr/lib/cgi-bin/cvsweb
- la bonne configuration du répertoire /usr/lib/cgi-bin/cvsweb dans le fichier /etc/apache2/sites-enabled/000-default
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory>
Lorsque ces 3 points ont été vérifiés, redémarrer le service Apache puis effectuer un nouveau test d'accès web.
sudo service apache2 restart
Répertoire "/var/www/cvsweb" inexistant, ou styles graphiques absents
L'interface graphique de cvsweb est supposée afficher des icônes et un style graphique plutôt sobre. Cependant, il arrive qu'au cours de l'installation le dossier contenant les objets et les styles graphiques ne soient pas copiés au bon endroit.
Si le problème apparaît, il faut vérifier l'existence du répertoire /var/www/cvsweb. S'il n'existe pas, créer un lien symbolique vers le répertoire /usr/share/cvsweb
sudo ln -s /usr/share/cvsweb/ /var/www/cvsweb