respaldo automatizado de /etc con etckeeper

Una de los dolores de cabeza cuando hay mas de dos sysadmin que trabajan en conjunto es el mantener  en control  de que cosa y cuando se modifico algún archivo de configuración de algún programa/demonio/etc.  Muchas veces es una tarea considerada fome/latosa o simplemente no  siempre se recuerda respaldar el archivo original  luego de realizar tuning a nuestro servicio no se consiguen los  resultados esperados u en el peor caso siquiera levantar el demonio.  Dentro de la chiches que ofrece ubuntu jaunty podemos encontrar dos combinaciones muy potentes para tratar de solventar  y disminuir de alguna manera el riesgo sobre todo en entornos de producción  (servidor), y los elegidos son  baazar y etckeeper.

Baazar es un sistema de control de versiones open source desarrollado por canonical que ofrece flexibilidad y facil manejo. En la otra mano tenemos etckeeper es una aplicacion que permite mantener un respaldo automatizado del directorio /etc usando un sistema de control de versiones  (en este caso baazar ya que viene instalada por defecto en la distro).  Esto me permite tener un historial de todos los cambios realizados en todos los archivos de configuraciones ya sea cuando manualmente edito algo u cuando hago alguna actualizacion de paquete.

Luego de todo el blabla a la parte practica:

sudo apt-get install etckeeper

Al terminar pues con la configuracion que trae por defecto es suficiente por ahora, de todas maneras se puede hojear el archivo “/etc/etckeeper/etckeeper.conf”.

Para iniciar debemos ejecutar

sudo etckeeper init

Eso inicia el repositorio inicial con el sistema de control de versiones especificado (en este caso baazar). Ahora debemos enviar los archivos del repositorio /etc  (funciona igual que bzr commit ),

sudo etckeeper commit "Envio Inicial"

que devolverá como salida una larga lista de archivos y
terminará en algo como:
added xml/docbook-xml.xml.old
added xml/rarian-compat.xml
added xml/sgml-data.xml
added xml/sgml-data.xml.old
added xml/xml-core.xml
added xml/xml-core.xml.old
added xulrunner-1.9/system-greprefs.js
Committed revision 1.

Esto creo el repositorio en baazar para todo el directorio “/etc/” (excepto la lista de archivos ignorados) y guardo todos los cambios “commit” en la versión numero 1.  Como ver para creer haré la siguiente prueba:  editare el archivo /etc/hosts y agregare la linea “192.168.0.1 gateway-falso” , guardare los cambios  y luego hare un commit para comparar los cambios hechos.

sudo etckeeper commit "Cambio en tabla hosts"

Bien ahora veamos el historial con la diferencia entre el archivo original y el modificado:

kamus@judith:~$ sudo bzr diff -c2 /etc
=== modified file 'hosts'
--- hosts    2009-05-24 21:14:06 +0000
+++ hosts    2009-05-24 21:23:54 +0000
@@ -1,5 +1,6 @@
 127.0.0.1    localhost
 127.0.1.1    judith
+192.168.0.1    gateway-falso
 # The following lines are desirable for IPv6 capable hosts
 ::1     ip6-localhost ip6-loopback

Se puede ver como aparece con símbolo “+”  la linea que agregue y la fecha de modificación del archivo en las ultimas dos revisiones hechas. Una de las ventajas de esta versión disponible en los repositorios oficiales es que cada vez que realizas un apt-get install paquete ese ejecuta un commit (respaldo) de tu /etc. Recomiendo ver  los links que donde esta mi fuente de documentación pues hay una serie de tres capítulos con ejemplos bien completo.

[1]http://fnords.wordpress.com/2009/02/23/etckeeper-chronicles-1/ , Extensión de la documentación para uso de etckeeper.

[2]http://doc.bazaar-vcs.org/bzr.dev/en/mini-tutorial/index.html , Excelente mini tutorial de 5 minutos para el uso basico de baazar.

Leave a comment

0 Comments.

Leave a Reply


[ Ctrl + Enter ]