Rancid
Rancid
Rancid
Necesidad
!
Qu cambio exactamente?
! !
Deja ver si todava lo tengo en el buffer de mi xterm Nadie cambi nada. -- Ya, seguro...
!
!
En qu momento exacto cambi? Cmo recupero la configuracin que tena hace dos meses? Diferencias incrementales
Historial de cambios
!
Necesidad
!
Recuperacin de desastres
! ! !
Despus de un problema de hardware Al hacer una actualizacin En general, tan fcil como copiar y restaurar Por e-mail Al grupo ms interesado, preferiblemente Mientras ms frecuentemente, mejor.
Notificacin de cambios
! ! !
Disponible en http://www.shrubbery.net/rancid/ Diseado inicialmente para enrutadores Cisco, pero ahora soporta muchos otros tipos y fabricantes:
!
Operacin bsica
! !
! ! !
Compara la informacin con la ltima copia guardada Notifica los cambios Guarda la nueva versin en un sistema de control de versiones
!
CVS o Subversion
Rancid: Grupos
!
Rancid organiza los dispositivos en grupos administrativos. Esto permite distribuir las notificaciones al grupo apropiado solamente.
!
Frecuentemente, las organizaciones tienen distintos equipos humanos gestionando las distintas tecnologas:
! !
Ejemplo
En este caso, se quit una tarjeta Gigabit Ethernet.
From: rancid <[email protected]> To: [email protected] Subject: example router config diffs Precedence: bulk Index: configs/dfw.example.com ================================================================ === retrieving revision 1.144 diff -u -4 -r1.144 dfw.example.com @@ -57,14 +57,8 @@ !Slot 2/MBUS: hvers 1.1 !Slot 2/MBUS: software 01.36 (RAM) (ROM version is 01.33) !Slot 2/MBUS: 128 Mbytes DRAM, 16384 Kbytes SDRAM ! - !Slot 6: 1 Port Gigabit Ethernet - !Slot 6/PCA: part 73-3302-03 rev C0 ver 3, serial CAB031216OL - !Slot 6/PCA: hvers 1.1 - !Slot 6/MBUS: part 73-2146-07 rev B0 dev 0, serial CAB031112SB - !Slot 6/MBUS: hvers 1.2 - !Slot 6/MBUS: software 01.36 (RAM) (ROM version is 01.33) !Slot 7: Route Processor !Slot 7/PCA: part 73-2170-03 rev B0 ver 3, serial CAB024901SI !Slot 7/PCA: hvers 1.4 !Slot 7/MBUS: part 73-2146-06 rev A0 dev 0, serial CAB02060044 @@ -136,11 +130,8 @@ boot system flash slot0: logging buffered 32768 debugging no logging console enable secret 5 $1$73Y1$grXuRjuZxfSiLYv1sBRUz0
Requisitos
!
Lenguaje Expect
!
http://expect.nist.gov/
Reemplaza a CVS http://subversion.tigris.org/ Libro http://svnbook.red-bean.com/
Subversion
! ! !
Apache
!
ViewVC
!
Provee una interfaz web, con posibilidad de acceder a distintas versiones Sitio web http://www.viewvc.org/
Instalacin
!
Descargar el paquete
apt-get install rancid-core rancid-cgi rancid-util
Directorios
Binarios: /usr/lib/rancid/bin Configuracin: /etc/rancid Trabajo: /var/lib/rancid Logs: /var/log/rancid
Usuario
rancid
Configuracin
!
Agregar los grupos necesarios y especificar que queremos usar Subversion (SVN) y no CVS
LIST_OF_GROUPS="routers switches" RCSSYS=svn
Crear un archivo .cloginrc en el directorio del usuario que va a ejecutar Rancid (/var/lib/rancid)
!
Editar este archivo con los datos necesarios para que Rancid pueda conectarse a los equipos Ver ejemplos en /usr/share/doc/rancidcore/examples/cloginrc.sample
Parametros de Configuracin
add password <nombre_router|expresin> <clave_acceso> <clave_enable> add user <nombre_router|expresin> <usuario> El usuario por defecto es $USER (e.g.: el usuario que corre clogin).
add userprompt <nombre_router|expresio> <mensaje_usuario> Lo que el enrutador imprime para preguntar por el nombre de usuario. Por defecto: {"(Username|login|user name):"}
add userpassword <nombre_router|expresin> <clave_usuario> La clave para el usuario si es diferente del password que se configur con 'add password'.
Parametros de Configuracin
add passprompt <nombre_router|expresin> <mensaje_password> Lo que el enrutador imprime para preguntar por la clave de acceso. Por defecto: {"(\[Pp]assword|passwd):"}
add method <nombre_router|expresin> {ssh} [...] Define en que orden y cuales mtodos de acceso se utilizarn para conectarse a un dispositivo, seleccionado de las opciones {ssh,telnet,rsh}. eg: add method * {ssh} {telnet} {rsh} intentar una conexin ssh primero. Si ssh falla con conexin negada (no debido a una clave equivocada), entonces trata telnet y despues rsh. Por defecto: {telnet} {ssh}
Parametros de Configuracin
add noenable <nombre_router|expresion> Equivalente a usar -noenable en la linea de comandos. No habilita enable cuando accesa el dispositivo.
add enableprompt <nombre_router|expresion> <mensaje_enable> Lo que el router despliega cuando pregunta por el password de enable. Por defecto: {"\[Pp]assword:"}
add enauser <nombre_router|expresio> <nombre_usuaurio> Esto es solo necesarion si el dispositivo requiere un nombre de usuario cuando se quiere cambiar a modo enable y el nombre es diferente del usuario que se uso para accesar al dispositivo.
add autoenable <nombre_router|expresin> <1/0> Utilizado si el proceso de accesar automaticamente te pone en modo enable.
Parametros de Configuracin
add cyphertype <nombre_router|expresin> <tipo_encripcin_ssh> Por defecto: 3des.
Nuestra Configuracin
!
Configuracin
!
Como root, agregar los aliases correspondientes para recibir las notificaciones
# vi /etc/aliases rancid-routers: walc rancid-admin-routers: walc rancid-switches: walc rancid-admin-switches: walc # newaliases
Configuracin
!
Crear los directorios y archivos de configuracin que estarn bajo control de versiones
# su rancid # /usr/lib/rancid/bin/rancid-cvs
Pruebas
!
bin/rancid-run
Repetir hasta que no haya errores La ltima configuracin debe econtrarse bajo:
/var/lib/rancid/<grupo>/configs/
Automatizacin
!
Dependiendo de la cantidad de dispositivos, Rancid necesitar ms o menos tiempo para revisar todas las configuraciones (este ejemplo chequea cada 10 minutos)
# su rancid # crontab -e 0,10,20,30,40,50 * * * * /usr/lib/rancid/bin/rancid-run routers 0,10,20,30,40,50 * * * * /usr/lib/rancid/bin/rancid-run switches 50 23 * * * /usr/bin/find /var/lib/rancid/logs -type f -mtime +2 -exec rm {} \;
ViewVC
Instalacin de ViewVC
!
Requisitos:
! !
Instalacin:
# apt-get install viewvc
Configuracin
# vi /etc/viewvc/viewvc.conf
svn_roots = rancid: /var/lib/rancid/CVS default_root = rancid address = <a href="mailto:[email protected]">walc@localhost</a>
Cambiar permisos
# chown -R rancid:www-data /var/lib/rancid/CVS
Apache y ViewVC
!
Probar el acceso
http://localhost.localdomain/rancid