… algunas reflexiones y un par de esquemas.
De cuando en cuando me toca volver a ser administrador de sistemas a tiempo completo. En esta ocasión se debe a que estoy replanteándome el cambio de software de copias de seguridad y, de paso, la realización de copias como proceso.
Es cierto que la herramienta disponible nos condiciona a la hora de emplearla. En mi caso las limitaciones de bacula son las responsables de que los procesos de copias sean tan difíciles de configurar y tan complejos de revertir.
El principio de bacula sitúa cada proceso de copia como un todo impermeable (al menos en la versión open source) y nos limita a conectarnos a un sistema y extraer de él aquellos archivos que han cambiado. Permite efectuar tareas en el cliente con los máximos privilegios antes de realizar las copias, pero al final siempre trata con archivos y árboles de directorios. La información especial, como las base de datos relacionales o los directorios LDAP, tienen que ser primero exportados con herramientas específicas y forzados a adoptar la forma que requiere el programa.
Todo eso no sería un inconveniente si no fuese porque deja varios cabos sueltos:
- Las disposiciones necesarias en la configuración del sistema para que los datos puedan ser recuperados: usuarios, permisos, contraseñas de acceso …
- Los programas que convierten los volcados a datos utilizables (ni se contemplan).
- Como cada trabajo sólo lee de una máquina no sabe nada de otras. Un ejemplo es un sitio web cuyos archivos estáticos residan en un tercero; en este caso tendríamos dos trabajos de copia que restaurar.
- Tampoco sabe nada de qué otros programas deben existir y estar configurados. Una aplicación web, por ejemplo, precisa de un servidor de páginas y un entorno de ejecución (PHP, Perl, …).
Resumiendo un poco: bacula no contempla la recuperación de servicios sino de árboles de archivos. Mi interés reside ahora en lo primero: quiero que alguien con un perfil técnico bajo pueda volver a poner en marcha un servicio.
Para ello estoy pensando en cosas que podrían ser interesantes. En el siguiente esquema pueden verse algunas:
Ahora voy a imaginar un momento futuro en el que alguien entrenado por mí tiene que recuperar el servicio:
- Accedería a una hoja de instrucciones simple y concreta. Puede estar en el wiki de la empresa pero es más útil si no precisa de un entorno operativo.
- Las instrucciones deben dirigirle a una máquina donde está almacenadas las copias clasificadas precisamente por nombre de servicio. También deben indicarle cómo tener acceso a dicha máquina y con qué credenciales presentarse.
- En dicho directorio debe encontrarse
- Un archivo simple (README, LEAME o así) en el que se detallen:
- las dependencias externas del servicio (paquetes instalados, configuración recuperada, servicios externos,…).
- Las contraseñas que debe tener a mano.
- Los programas que debe ejecutar y cómo.
- El script a ejecutar que lleva a cabo, paso a paso y con numerosa información, los procedimientos de recuperación.
- Las fuentes de información que debe recuperar:
- Árboles de archivos.
- Volcados de bases de datos y similares.
- Archivos de configuración.
- Un archivo simple (README, LEAME o así) en el que se detallen:
Según escribo me doy cuenta de que existen dos requisitos que es imprescindible resolver antes de liarme a diseñar algo así:
- Las contraseñas deben estar accesibles en papel.
- Los archivos fuente deben estar disponibles de manera inmediata en el directorio que he citado.
El primero no es difícil ya que las contraseñas de las bases de datos y administrativas no suelen cambiar demasiado; es factible tenerlas en papel junto con la hoja de recuperación.
El segundo ya tiene un poco más de tela si empleamos programas de copias de seguridad de verdad; suelen tener la costumbre de almacenar los datos en formatos especiales, bien en disco, bien en cintas magnéticas, bien en otros servidores, y no suelen ser accesibles si no es mediante sus propios programas.
Bacula (o bareos próximamente) tiene procedimientos de recuperación flexibles y enrevesados. Quizás creando un perfil concreto fuese posible automatizar toda la recuperación con una única orden, sin recurrir a su menú y sus múltiples preguntas, así que esa será mi siguiente prioridad en este tema.
He revoloteado un poco por el asunto y creo que podría partir de un archivo de texto que describiese lo que indica en este esquema:
Con este punto de partida podría escribir uno o varios scripts que creasen la configuración correspondiente para realizar copias y para recuperarlas, así como la documentación necesaria para el operador.
Voy a trabajar un poco más …