Bacula 5.0. Instalando el servidor.

Bacula. Haz copias de seguridad de ordenadores de tu red

Este es el segundo de una serie de posts dedicados al producto de copias de seguridad Bacula. En el post anterior, expliqué los aspectos generales de este producto. En este post, entro en materia por el principio: instalando el producto.

Recuerdo primero cuál es la idea de esta serie de tutoriales según la figura siguiente: Bacula. Haz copias de seguridad de ordenadores de tu red

Lo que empiezo en este post es la instalación de la Máquina servidor.

Instalación de la máquina servidor. Para el servidor, partimos de que ya tenemos la distribución OpenSuSe 11.2 instalada. Las bases de esta instalación han sido:

  • Antes de instalar Bacula, es necesario instalar las dependencias que necesita este programa para su funcionamiento. Para facilitarnos este paso, en la página de descargas de Bacula encontramos una sección depkgs, en donde podemos descargar los paquetes de dependencias ya preparados. No es obligatorio utilizar estos paquetes, ya que podemos ir al site de cada uno de los productos necesarios e instalarlos, pero estos paquetes nos facilitan mucho el proceso. Las depedencias son 2: el gestor de base de datos (el paquete de dependencias incluye SQLite) y MTX para el acceso a medios como cintas o DVD. Además, tenemos otra   Dependencia:la librería gráfica Qt4. En el momento de elaboración de este tutorial, he bajado los ficheros de dependencias: depkgs-15May10.tar.gz y depkgs-qt-28Jul09.tar.gz .
  • He bajado el fichero de fuentes de la página de descargas de Bacula. En el momento de elaboración de este tutorial, el fichero bajado es bacula-5.0.2.tar.gz.

Consideraciones previas a la instalación.

  • Ten cuidado en no saltarte los pasos. Ya sé que a veces las ganas nos pueden, pero en este caso las prisas son realmente malas. Lo he sufrido personalmente. Piensa que, si necesitas deshacer una instalación para rehacerla con otros parámetros, necesitas ejecutar una serie de pasos que se detallan al final de este mismo documento.
  • ¡Cuidado con los permisos!. También lo he sufrido personalmente. No tuve más remedio que efectuar todos los pasos con sudo, ya que de otra forma no me funcionaba,  y lo peor es que ni siquiera avisaba del problema, haciéndome creer que todo iba bien.

Pasos para la instalación.

  • Instalar las dependencias: para ello, creamos un directoriode nombre bacula. En mis caso lo he creado en la carpeta home utilizando el gestor de ficheros Dolphin de OpenSUSE.
  • Descomprimimos en esta carpeta tanto ambos depkgs como el fichero de fuentes. Para ello, he utilizado Ark. El resultado de la descompresión son tres subcarpetas, una por cada fichero descomprimido.
  • Lo siguiente es ir a dicha carpeta y ejecutar make:
cd bacula/depkgs
sudo make
  • ¡Y la primera en la frente!. OpenSUSE me dice que no encuentra”make”. Después de consultar en foros, decido instalar el pattern base de desarrollo a través de la utilidad “Instalar /desinstalar software” de YaST2. Para ello, dentro de esta utilidad selecciono la opción “pattern” del desplagable “ver” en la parte superior izquierda y luego voy a la categoría “Desarrollo”. La opción Base de desarrollo me aparece la primera en dicha categoría.

Yast2. Pattern desarrollo OpenSuSe 11.2

  • Vuelvo a lanza el make y al finalizar, me aparece un mensaje que dice que si quiero utilizar mtx, ejecute la orden gmake mtx-install. La utilidad mtx es para tener acceso a unidades de cinta y DVD, CD, etc. Las pruebas de este tutorial se efectuarán sobre disco directamente, por lo que mtx no es necesario. Sin embargo, lo voy a instalar para ver cómo reacciona:
sudo gmake mtx install
  • He tenido que instalarlo con permisos de root ya que de otra forma, me salen mensajes de error por falta de permisos. Todo OK.
  • Ahora, voy a instalar el depkg para Qt. Para ello, me posiciono en el directorio creado al descomprimir depkgs-qt-28Jul09.tar.gz. Por defecto, este directorio se llama depkgs-qt.
sudo make qt4
  • La instalación ha ido bien.
  • El siguiente paso es instalar Bacula a partir de sus fuentes. Me recomienda que, antes de lanzar esta instalación, verifique que en el path no tengo ninguna entrada qmake-qt4 y que, si la tengo, la renombre. Haciendo un echo $PATH veo que no aparece, así que sigo adelante.
  • Para instalar Bacula, desde una ventana de terminal/consola, me posiciono en el directorio en donde he descomprimido Bacula y allí voy a lanzar un ./configure. El tema está en que configure tiene una serie de posibles parámetros para Bacula que no se deben dejar de lado. De hecho, en la documentación hay una sección de los parámetros recomendados según el sistema operativo en donde lo queremos instalar. La lista de los parámetros es larga, y te dejo a tu elección mirarla en su totalidad. Voy a lanzar el configure con la recomendación de parámetros por defecto. Si alguno de ellos te hace tener dudas, consulta la lista de los parámetros (sección Configure Options). Te adjunto el cuerpo de un script en donde están las recomendaciones respecto a configure.
#!/bin/sh
CFLAGS="-g -Wall" 
LDFLAGS=" " 
 ./configure 
 --sbindir=$HOME/bacula/bin 
 --sysconfdir=$HOME/bacula/bin 
 --mandir=$HOME/bacula/bin 
 --enable-smartalloc 
 --enable-bat 
 --enable-bwx-console 
 --enable-tray-monitor 
 --with-pid-dir=$HOME/bacula/bin/working 
 --with-subsys-dir=$HOME/bacula/bin/working 
 --with-sqlite3=$HOME/bacula/depkgs/sqlite3 
 --with-working-dir=$HOME/bacula/bin/working 
exit 0
  • Si copias este cuerpo a un fichero, lo puedes ejecutar son sh (y sudo).
  • Por supuesto, es importante tener claro lo directorios de los parámetros.
  • Uno de los parámetros (–with-sqlite3=$HOME/bacula/depkgs/sqlite3) se ha utilizado porque decidí utilizar sqlite como gestor de bases de datos. En la lista de los parámetros encontrarás los correspondientes a MySQL y PostgreSQL. La ruta es el directorio sqlite3 que se ha creado al descomprimir depkgs-15May10.tar.gz.
  • La instalación no ha dado ningún problema. Al finalizar, me muestra el resultado de la configuración de la instalación. Este paso es muy importante ya que puedo comprobar si los directorios son correctos. Si, por lo que fuese, queremos lanzar de nuevo configure con parámetros cambiados, no hay problema, pero antes de hacerlo, debes ejecutar: make distclean.
  • Bacula guarda la información de la configuración en el fichero config.out. Es importante que no lo pierda de vista porque en él hay algunos datos imprescindibles.
  • Ejecutamos
sudo make
  • Ejecutamos
sudo make install
  • ¡Cuidado! no ejecutes make install sin antes haber ejecutado make. En la documentación dejan bien claro que es un paso que no se puede saltar. Al ejecutarlo me da un error de permisos al intentar acceder a /usr/share/doc/bacula. Así que lo ejecuto con sudo.
  • Siguiente paso: crear la base de datos y las tablas. Dentro de la carpeta bin de la nueva instalación (en mi caso $HOME/bacula/bin/), hay una serie de scripts. Dependiendo del gestor de base de datos escogido, tengo que ejecutar uno u otro. Como he elegido utilizar sqlite, el fichero a ejecutar es:
sudo make_sqlite_tables
  • Como era de esperar, lo he ejecutado con sudo ya que no tenía permisos suficientes. La ejecución no ha dado ningún mensaje. Voy a presuponer que ha ido bien.

Cofiguración previa al uso de Bacula.

Después de la instalación, según la documentación oficial tengo que configurar unas cosas antes de utilizar Bacula. Los ficheros de configuración se encuentran en el directorio especificado por el parametro –sysconfdir (cuando lancé configure). Voy por pasos:

  • Cuidado con los permisos de estos ficheros. Por defecto, no deja abrirlos al usuario normal. Los abro con sudo.
  • Según la documentación, no es necesaria ninguna configuración especial para la consola, el servicio de fichero (File daemon).
  • Para el servicio Director, tenemos el fichero bacula-dir.conf (en la ruta especificada en el parámetro –sysconfdir). Este sí es un paso importante, ya que es en este fichero donde se guarda, entre otras informaciones, los directorios y/o ficheros que se van a incluir en la copia de seguridad. El fichero es extenso, pero está bien documentado con comentarios. Encuentro fácilmente la siguiente sección:
# List of files to be backed up
FileSet {
 Name = "Full Set"
 Include {
 Options {
 signature = MD5
 }
#
#  Put your list of files here, preceded by 'File =', one per line
#    or include an external list with:
#
#    File = <file-name
#
#  Note: / backs up everything on the root partition.
#    if you have other partitions such as /usr or /home
#    you will probably want to add them too.
#
#  By default this is defined to point to the Bacula binary
#    directory to give a reasonable FileSet to backup to
#    disk storage during initial testing.
#
 File = /home/isildur/bacula/bin
 File = /home/isildur/bacula/para-copiar
 }

#
  • Como puedes comprobar, en este extracto he incluido un directorio (mediante File= /home/isildur/bacula/para-copiar). Si quisiera incluir más directorios, cada uno estaría en una nueva línea File=. No voy a configurar más trabajos, ya que estoy probando el producto, pero no dejes de pensar que la flexibilidad a la hora de definir copias es mucho mayor teniendo en cuenta que se pueden definir diferentes trabajos, que a su vez tienen definidos directorios para copiar.
  • He creado el directorio /home/isildur/bacula/para-copias, con los permisos adecuados.
  • Configuración del servicio de almacenamiento (Storage daemon): Este es otro paso importante. Aquí es donde se definen los dispositivos de almacenamiento (cintas, DVDs, ficheros). Es importante tener en cuenta que existe una conexión entre la configuración del servicio Director y el servicio de almacenamiento. Esta conexión consiste en que, dentro del fichero de configuración bacula-dir.conf, encontramos la entrada Device en la sección Storage:
# Definition of file storage device
Storage {
 Name = File
# Do not use "localhost" here
 Address = linux-bprd                # N.B. Use a fully qualified name here
 SDPort = 9103
 Password = "6S0G3l+XOkxFygiMDuUGNeW6mvaWGeFOS9vUB9D5RQC5"
 Device = FileStorage
 Media Type = File
}
  • Y el extracto correspondiente en el fichero bacula-sd.conf es:
Device {
 Name = FileStorage
 Media Type = File
 Archive Device = /home/isildur/bacula/copias
 LabelMedia = yes;                   # lets Bacula label unlabeled media
 Random Access = Yes;
 AutomaticMount = yes;               # when device opened, read it
 RemovableMedia = no;
 AlwaysOpen = no;
}
  • La entrada Device debe contener un nombre definido dentro de bacula-sd.conf, en una sección Device con la entrada Name igual que el nombre definido en bacula-dir.conf. Como puedes comprobar, en ambos sitios el nombre es FileStorage. Podría ser otro nombre, siempre y cuando sea el mismo en ambos sitios (teniendo en cuenta que es sensible a Máys/Min). En mi caso, que no tengo cinta ni DVD, mi Device es de tipo fichero y lo he definido en la entrada Archive Device = /home/isildur/bacula/copias, que es también muy importante tener bien definida.

Esto es lo mínimo respecto a la configuración. Antes de ponerme  a hacer copias y restauraciones como un loco, voy a comprobar que los ficheros de configuración son correctos. Bacula permite hacerlo mediante los siguientes comandos (dentro del directorio de instalación definido en el parámetro –sbindir de configure):

sudo ./bacula-dir  -t  -c  bacula-dir.conf
sudo ./bacula-fd  -t  -c  bacula-fd.conf
sudo ./bacula-sd  -t  -c  bacula-sd.conf
sudo ./bconsole  -t  -c  bconsole.conf
  • En ningún caso me ha dado error. Estos son los comandos para verificar los ficheros de configuración de mi instalación, pero hay más. Se trata de aquellos para verificar la configuración del tray monitor y de la consola wxWidgets (en ambos casos no instalados en mis pruebas).

Arrancando los daemons de Bacula.

  • Dentro del mismo directorio bin (directorio del producto ya instalado), ejecutamos:
sudo ./bacula start
  • A lo que nos contesta:
Starting the Bacula Storage daemon
Starting the Bacula File daemon
Starting the Bacula Director daemon
  • De momento, todo parece ir bien. Puedo comprobarlo con:
pgrep bacula
  • Si todo va bien, nos aparecerán los tres números de los procesos de los tres daemons.

Cómo reinstalar Bacula.

Bien. Aquí viene lo bueno. Para reinstalar Bacula, se deben deshacer los pasos efectuados. Es decir, hay que volver atrás y empezar. Los comandos son los siguientes (en el directorio donde tenemos el instalador):

sudo make uninstall
sudo make distclean
sudo ./configure (con las nuevas opciones)
sudo make
sudo make install

Si necesitásemos reinstalar la base de datos SQLite, también hay unos pasos (esta vez desde el directorio donde se ha instalado Bacula):

sudo ./drop_bacula_tables
sudo ./drop_bacula_database
sudo ./make_sqlite3_tables

En el próximo post sobre Bacula, empezaré a utilizar la consola para comunicarme con el daemon Director y hacer una copia de seguridad y un restore.

Acerca de Isildur Fuentes

Apasionado de las buenas historias y aikidoka de la tierra.

Publicado el julio 13, 2010 en Utilidades de administración y etiquetado en , , , , , , . Guarda el enlace permanente. Deja un comentario.

Los comentarios están cerrados.

A %d blogueros les gusta esto: