Magazine High tech

Installer rancid sur RHEL

Publié le 14 août 2008 par Crocodanser

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 :

* = 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 Installer rancid sur RHEL

Installer rancid sur RHEL

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!


Retour à La Une de Logo Paperblog

A propos de l’auteur


Crocodanser 15 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte