Août
14
2008

Installer rancid sur RHEL


Définition de rancid :

Rancid est un logiciel open-source basé sur cvs (gestion de version) permettant de sauvegarder les configurations de vos équipements réseaux et en conserver les differentes versions. Il est compatible avec un grand nombre d’équipements et de marque tel que cisco, nortel, juniper….

Grâce à cvsweb, nous pouvons visualiser les différentes confs via l’http.

Pré-requis :

Installer les packages nécessaire à l’installation de rancid sur redhat linux :

  • httpd *
  • expect *
  • cvs *
  • cvsweb

* = fourni sur le cd rhel

Pour installer les fichiers rpm fournis sur le cd de rhel, effectuer cette commande :

rpm -Uvh package.rpm

Installation de CVSWEB :

Vous pouvez télécharger cvsweb en tar.gz sur http://www.freebsd.org/projects/cvsweb.html

décompresser l’archive :

tar xvzf cvsweb-3.0.6.tar.gz

Se placer dans le repertoire contenant les fichiers décompréssés.

Copier cvsweb.conf dans /etc

cp -p cvsweb.conf /etc/

Copier le script cgi dans /var/www/cgi-bin/ et le renommer en cvsweb

cp -p cvsweb.cgi /var/www/cgi-bin/cvsweb

Créer le répertoire /var/www/html/cvsweb qui contiendra les images et les css :

mkdir /var/www/html/cvsweb

Copier les répertoires icons et css dans /var/www/html/

cp -Rp icons /var/www/html/cvsweb/
cp -Rp css /var/www/html/cvsweb/

Voici les droits que j’ai pour les differents répertoires :

[root@admin1 cvsweb-3.0.6]# ls -l /var/www | grep cvsweb
drwxr-xr-x 4 root root 4096 ao� 13 18:38 cvsweb

[root@admin1 cvsweb-3.0.6]# ls -l /www/cvsweb
drwxr-xr-x 2 root root 4096 jui 20 2004 css
drwxr-xr-x 2 root root 4096 ao� 1 2003 icons

[root@admin1 cvsweb-3.0.6]# ls -l /var/www/cgi-bin/ | grep cvsweb
-rwxr-xr-x 1 root root 126573 ao� 13 18:47 cvsweb

[root@admin1 cvsweb-3.0.6]# ls -l /etc/cvsweb | grep cvsweb
-rw-r–r– 1 root root 23044 ao� 14 08:35 cvsweb.conf

Modifier le fichier cvsweb.conf pour avoir ces chemins :

my $iconsdir = ‘/cvsweb/icons’;
$cssurl = ‘/cvsweb/css/cvsweb.css’;

Modifier le fichier http.conf pour créer un virtualhost special pour cvsweb :

NameVirtualHost *
<VirtualHost *>
DocumentRoot /var/www/html/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

ScriptAlias /cgi-bin/ /var/www/cgi-bin/
<Directory “/var/www/cgi-bin”>
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
CustomLog /var/log/httpd/rancid_access.log common
ErrorLog /var/log/httpd/rancid_error.log
</VirtualHost>

Recharger le service httpd après toutes modification d’un de ses fichiers de configuration :

service httpd graceful

Maintenant vous pouvez tester la configuration en allant sur http://127.0.0.1/cvsweb/

Installation de rancid :

Créer un utilisateur du nom de rancid :

useradd -d /home/rancid rancid
passwd rancid

Spécifiez un mot de passe.

Télécharger rancid à cet endroit : http://www.shrubbery.net/rancid/

Décomprésser l’archive :

tar xvzf rancid-2.3.1.tar.gz

Aller dans le répertoire décompressé et faire :

./configure –prefix=/home/rancid
make install

Ainsi, nous installons rancid.

Une fois l’installation effectué, nous devons modifier les droits sur l’arborescence de rancid.
Pour cela, vous devez effectuer cette commande :

chown -R rancid.apache /home/rancid
chmod 770 /home/rancid

Configuration de rancid :

Création de groupe d’équipement :

Nous allons maintenant créer des groupes d’équipements. Il vous faudra créer autant de groupe que de site que vous administré pour une meilleur visibilité sur cvsweb. Il vous faut créé au moins un groupe. Pour cela, editez le fichier de configuration /home/rancid/etc/rancid.conf et ajoutez :

LIST_OF_GROUPS=”Paris”

Les noms de groupes doivent être séparé par un espace :

LIST_OF_GROUPS=”Paris Lyon Marseille”

Configuration de l’accès aux équipements :

Il est nécessaire de configurer un fichier appelé “.cloginrc” contenant les mot de passe nécessaire pour accéder aux équipements réseaux.

Pour le créer, il faut renommer le fichier “cloginrc.sample” en “.cloginrc”.

cp /home/rancid/share/rancid/cloginrc.sample /home/rancid/.cloginrc

Ensuite,Nous éditons le nouveau fichier “.cloginrc” où on peut trouver des exemples de
syntaxe basées sur le type d’équipement (Cisco, Juniper, etc…) et de connexion
(telnet, ssh, …)

Dans notre exemple, nous allons utiliser telnet pour accéder à un switch Cisco ayant une
adresse IP de 192.168.26.254

Editez /home/rancid/.cloginrc.

Mettez des commentaires sur chaque ligne qui ne l’ai pas (mettre # devant chaque ligne). Puis ajoutez cette ligne :

add password 192.168.26.254 {vty_password} {enable_password}

Cela signifie que pour l’équipement 192.168.26.254 le mot de passe telnet sera vty_password et le mot de passe enable sera enable_password.

Vous pouvez voir des exemples de configuration dans le fichier .cloginrc.

Voici un autre exemple :

Si vous avez un switch Cisco sur lequel vous devez vous authentifier avec un nom d’utilisateur et un mot de passe et qu’en rentrant votre compte d’accès, vous arrivez directement en mode enable, voici la configuration à ajouter :

add password 192.168.0.254 {motdepasse}
add user 192.168.0.254 admin
add autoenable 192.168.0.254 1
add userprompt 192.168.0.254 {“Username:”}

autoenable à la valeur 1 signifie qu’après l’authentification rancid sera directement en mode enable.
userprompt correspond à ce que l’équipement affiche lors d’une demande de connexion telnet.

Vérifier bien que le fichier .cloginrc est accessible seulement par l’utilisateur rancid car il contient les mots de passe en claire :

chmod 600 /home/rancid/.cloginrc

chown -R rancid:rancid /home/rancid

Création de l’arborescence CVS :

su rancid

rancid@linux#/home/rancid/bin/rancid-cvs

Cette commande va générer automatiquement une arborescence pour le CVS à partir de votre fichier rancid.conf. Celle-ci est construite dans /home/rancid/var/.

Voici un exemple d’arborescence générée :

[rancid@linux PARIS]$ ls -l
total 8
drwxr-x— 3 rancid rancid 4096 ao� 14 13:46 configs
drwxr-x— 2 rancid rancid 4096 ao� 14 13:46 CVS
-rw-r—– 1 rancid rancid 0 ao� 14 13:46 router.db
-rw-r—– 1 rancid rancid 0 ao� 14 14:10 routers.all
-rw-r—– 1 rancid rancid 0 ao� 14 14:10 routers.down
-rw-r—– 1 rancid rancid 0 ao� 14 14:10 routers.up

Ajoutons un équipement dans un groupe :

editons le fichier router.db situé dans home/rancid/var/”group_name”/router.db

et ajoutons nos équipements de cette façon :

192.168.0.254:cisco:up

Vous pouvez consulter le man de router.db à cette adresse : http://www.shrubbery.net/rancid/man/router.db.5.html

A présent, nous pouvons tester la connection à l’équipement :

[rancid@linux]$ /home/rancid/bin/clogin 192.168.0.254
192.168.0.254
spawn telnet 192.168.0.254
Trying 192.168.0.254…
Connected to 192.168.0.254 (192.168.0.254).
Escape character is ‘^]’.
C
******************************************
* Unauthorized access prohibited *
******************************************

User Access Verification

Username: admin
Password:
router#

Si vous n’avez pas un résultat positif, regardez les exemples de configurations dans le fichier .cloginrc

Démarrons rancid avec cette commande :

rancid@linux#/home/rancid/bin/rancid-run

Vous pouvez vérifier les journaux (logs) dans le répertoire
/home/rancid/var/logs/ .

Configuration de cvsweb pour rancid :

Modifier le fichier de configuration de cvsweb en remplacant :

@CVSrepositories = (
‘local’ => [‘Local Repository’, ‘/var/cvs’],
# ‘freebsd’ => [‘FreeBSD’, ‘/var/ncvs’],
# ‘openbsd’ => [‘OpenBSD’, ‘/var/ncvs’],
# ‘netbsd’ => [‘NetBSD’, ‘/var/ncvs’],
# ‘ruby’ => [‘Ruby’, ‘/var/anoncvs/ruby’],
);

par :

@CVSrepositories = (
‘My_Config’ => [‘My Config’, ‘/home/rancid/var/CVS’],
# ‘local’ => [‘Local Repository’, ‘/var/cvs’],
# ‘freebsd’ => [‘FreeBSD’, ‘/var/ncvs’],
# ‘openbsd’ => [‘OpenBSD’, ‘/var/ncvs’],
# ‘netbsd’ => [‘NetBSD’, ‘/var/ncvs’],
# ‘ruby’ => [‘Ruby’, ‘/var/anoncvs/ruby’],
);

Puis allez sur :

http://127.0.0.1/cgi-bin/cvsweb

Permettre à rancid de nous envoyer des emails

Si ce n’est pas déjà le cas, installer postfix. Par défaut, sur rhel, le relais smtp est sendmail. Personnalement, je préfère postfix. Il est fourni en rpm sur le cd de rhel. Installez le avec la commande rpm -Uvh postfix-*.rpm et profitez-en pour installer system-switch-mail.

Une fois ces deux packages installés, editez le fichier /etc/postfix/main.cf et modifier :

relayhost = [votre_serveur_de_messagerie]

puis redémarrez postfix:

service postfix restart

Lancer la commande :

system-switch-mail

Selectionnez postfix comme relais smtp par defaut.

Editez le fichier /etc/aliases et ajouter :

#utilisateur rancid
rancid-PARIS:            [email protected]

rancid-admin-PARIS:      [email protected]

où PARIS et le nom d’un de vos groupe.

Mettre à jour les alias en tapant :

newaliases

Les logs de postfix se situe dans /var/log/maillog

Automatisation du check de rancid

Il faut ajouter la commande permettant à rancid de vérifier les nouvelles configurations dans le crontab de l’utilisateur rancid :

crontab -e -u rancid

# Veuillez, svp, lancer le script rancid-run tous les jours Ã|  00:30
30 00 * * * /home/rancid/bin/rancid-run
# supprime les anciens logs tous les premiers jours de chaque mois Ã|  00:15
15 00 1 * * find /home/rancid/var/logs -type f -mtime +30 -exec rm {} ;

Ici rancid sera lancé à 00h30. La deuxième commande permet de supprimer les fichiers logs de rancid qui datent de plus de 30jours. Donc à ajouter obligatoirement.

Allez, Bon courage pour l’ajout de vos équipements 😉

Au sujet de l'auteur: Olivier Legras

Auteur de ce Blog, je partage quelques unes de mes notes que je juge utile à vous comme à moi. Je suis très heureux de voir que mon blog a de plus en plus d'affluence. Merci à vous!

5 Comments + Add Comment

  • Bonjour,je viens de commencer un stage et on me demande d’installer RANCID sur une machine sur laquelle y’a red hat j’avoue que je viens de commencer à travailler sur linux je me familiarise un peu un peu avec les commandes mais concernant RANCID je vous prie de m’aider à l’installer j’ai déjà telecharger rancid-2.3.6 et j’ai crée un répertoire dans lequel j’ai copier je sais vraiment pas comment l’installer si vous avez un document ou un lien ou l’installation est mise en détail vous me sauverez la vie si vous me les donné.Merci je compte sur vous

  • Bonjour, Et bien avez-vous commencé à suivre ce tutorial? ce serait déjà un bon début.

  • Bonjour,merci de m’avoir répondu actuellement je suis au niveau de création de groupe quand je mets vi /home/rancid/etc/rancid.conf j’ai un fichier vide j’aimerais savoir si s’est normal et si je peux ajouter les sites sans avoir de problème de config plus tard.

  • Bonjour,

    J’ai un problème au niveau du renvoi de fichier de conf.

    Quand je relance le rancid-run sur tout les switches je ne les voie pas dans configs c’est le même que le 1er lancement. impossible donc de faire des comparaisons car je l’avais modié;
    pouvez-vous m’aidez?
    Merci

  • Bonjour,
    J’ai un problème lors de l’étape de visualisation en ligne (http://127.0.0.1/cgi-bin/cvsweb).
    Je me retrouve avec le contenu du fichier cvsweb qui est affiché et pas la configuration des switchs. Pouvez-vous m’aider ?

    Merci par avance.
    Cordialement

Laissez un commentaire