===== 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