« - »

Backup de config cisco

28 May 2014

Comme vous le savez tous, je suis en train de  préparer mon  CCIE RS, et comme toute bonne personne organisée et avide de connaissances, j’ai décidé de scripter un peu le tout pour me simplifier la vie et me concentrer sur l’essentiel (les fameux 80/20).

Bien sur il existe le formidable outil RANCID. Dans mon cas, je pense également l’utiliser, mais il faut que je trouve un moyen de changer le port SSH pour chaque device.

En effet je passe par un rebond qui est le routeur ACCESS doté d’une NM32A et qui connecte les equipements via un cable octal. Mais en lisant la doc, et en testant cela doit pouvoir le faire (je regarderai plus tard)

Donc je me suis intéressé au langage “Expect”

#!/usr/bin/expect

set device [lrange $argv 0 0]
set user [lrange $argv 1 1]
set pass [lrange $argv 2 2]
set enable [lrange $argv 3 3]
set port [lrange $argv 4 4]
set timeout 60
spawn ssh -p $port $user@$device
expect “*assword: “
send “$pass\n”
expect “>”
send “en\n”
expect “*assword:”
send “$enable\n”
log_file $device.txt
send “term len 0\n”
send “show running-config\n”
expect “end\r”
send “\n”
send “exit\n”
log_file

Bon ce script marche mais entre temps, j’ai regardé pour rancid  et un peu cherché (pas testé)

Pour Rancid voici la tête d’un .cloginrc

add method R1.lab {ssh:-2001}
add password R1.lab cisco cisco
add method R2.lab {ssh:-2002}
add password R2.lab cisco cisco
add method R3.lab {ssh:-2003}
add password R3.lab cisco cisco
add method R4.lab {ssh:-2004}
add password R4.lab cisco cisco
add method R5.lab {ssh:-2005}
add password R5.lab cisco cisco
add method R6.lab {ssh:-2006}
add password R6.lab cisco cisco
add method R7.lab {ssh:-2007}
add password R7.lab cisco cisco
add method R8.lab {ssh:-2008}
add password R8.lab cisco cisco
add method SW1.lab {ssh:-2011}
add password SW1.lab cisco cisco
add method SW2.lab {ssh:-2012}
add password SW2.lab cisco cisco
add method SW3.lab {ssh:-2013}
add password SW3.lab cisco cisco
add method SW4.lab {ssh:-2014}
add password SW4.lab cisco cisco

 

Il faut bien sur renseigner son fichiers hosts du serveur exécutant RANCID. Ici seulement le port diffère…

Avec un SVNweb et un crontab toutes les 10 minutes, on doit pouvoir mettre en place un suivi quasi temps réel des confs avec une interface web *clickaconviajaxstyle*

 


Laisser un commentaire