===== Installation d'un gestionnaire de configuration d'équipements réseau RANCID ======
{{:systeme:rancid.png?nolink&202 |}}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 :
* switchs Allied Telesis exécutant AW +
* les routeurs Cisco
* les routeurs Juniper
* les commutateurs Catalyst
* les commutateurs Foundry (maintenant Brocade)
* les Redback NAS
* les muxes ADC EZT3
* les commutateurs MRTd (et donc probablement IRRd)
* Alteon
* HP Procurve
* J'ai même ajouté les commutateurs Alcatel-Lucent
~~READMORE~~
==== Installation =====
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 [[http://www.shrubbery.net/rancid/|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/
==== Configuration ====
Les actions suivantes sont faits avec le login ''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
vous devrez exécuter cette commandes aussi pour supprimer vos groupes
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 >
add password < [IP] ou DNS du ou des équipement visés >
##MON GR2
#Si, j'ai des équipements CISCO
add password < [IP] ou DNS du ou des équipement visés >
##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 >
add password < [IP] ou DNS du ou des équipement visés >
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
...
==== Définir la mailing-liste ====
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 :
* 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'' 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
==== 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.\\
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 :
* */6 * * * /usr/local/rancid/bin/rancid-run
Penser à purger les logs de rancid :
30 00 * * * /usr/bin/find /usr/local/rancid/var/logs/ -type f -mtime +5 -exec /bin/rm -Rf {} \;
==== Configuration de cvsweb ====
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''
ServerName
DocumentRoot /var/www/html/cvsweb
redirectmatch ^/$ /cgi-bin/cvsweb
Options +FollowSymLinks -Indexes
AllowOverride None
# 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
Puis dans ''/var/www/html'' nous allons faire un lien symbolique :
ln -s /usr/share/cvsweb cvsweb
Puis vous pouvez faire [[http://]] cela devrai afficher vos groupes, configurations et les révisions.
==== prendre en charge les équipements Alcatel-Lucent "omniswitch" ====
Pour cela télécharger le fichier {{ :systeme: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 :
*.net-alu.ksh-linux.info;alcatel;up
*.net-alu.ksh-linux.info;alcatel;up
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