Hoy toca entrar en harina, pelear en la trinchera, bregar con los leones etc… o sea, q hoy toca sesión de tecleo.
Vamos a instalar Bacula para poder empezar a trabajar y hacer unas copias de seguridad frescas. Por desgracia la instalación de Bacula me va a obligar a dedicarle un articulo entero, y es que es absurdo el tiempo que se pierde en el mundo Linux instalando mierdas, pero es lo que hay. Es claro que se ha avanzado muchísimo desde los tiempos del "configure make" con estas virguerías de repositorios y gestores de paquetes, pero aun asi entre pitos y flautas se te va un tiempo majo, máxime si no hay paquetillo en el repositorio de rigor (si que lo hay para RHEL pero paso) y tampoco es que el manual sea claro, apuntando a hipervínculos que no existen y cosas de esas del software free.
Requisitos
Podéis elegir la distro que mas os convenga, pero todo lo relativo a la instalación será referido al sistema que pongo a continuación:
- Centos 5.3 32 bits (sin entorno grafico instalado)
- Mysql (instalado desde yum)
- Bacula (instalado desde fuentes sin soporte para herramientas graficas)
Sin mas. Para manejar el sistema se tirara de bconsole (herramienta de texto) aunque se instalara un front-end grafico vía web bastante aparente a priori aunque a la larga inútil total me parece a mi.
Instalación Bacula
Primero Mysql y el gcc:
yum install mysql mysql-devel mysql-server gcc-c++
Si arrancáis el MySQL con el típico /etc/init.d/mysql start se rellenaran las tablas internas necesarias.
Ahora vamos con la compilación de Bacula. Por desgracia no hay paquetes yum pregenerados (si que los hay para RedHat, que viene a ser lo mismo, pero como tampoco es que sea muy compleja su instalación desde fuentes asi lo haremos, por si las moscas).
Tenéis el tar.gz en http://www.bacula.org/en/?page=downloads
En un primer momento descargamos bacula-3.x.y.tar.gz y lo dejamos en root.
wget https://sourceforge.net/projects/bacula/files/bacula/3.0.3/bacula-3.0.3.tar.gz/download
Descomprimimos
gunzip bacula-3.x.y.tar.gz
tar xvf bacula-3.x.y.tar
y a compilar. Las opciones que he elegido yo son:
CFLAGS="-g -Wall" ./configure –sbindir=/usr/local/bacula/bin
–sysconfdir=/usr/local/bacula/etc
–with-pid-dir=/usr/local/bacula/run
–with-subsys-dir=/usr/local/bacula/bin/working
–with-mysql
–with-working-dir=/usr/local/bacula/bin/working
–enable-smartalloc
–enable-batch-insert
–enable-conio
Hacemos el make y lo instalamos
make install
y si queremos que se nos añadan los links en los directorios de runlevel para su arranque automático no hay mas que hacer
make install-autostart
Con esto ya tenemos lo mínimo. El ./configure elegido yo lo suelo guardar en un fichero llamado config.sh al que doy permisos de ejecución por si en un futuro tengo que cambiar alguna configuración. Si queréis recompilar, primero hacer un
make distclean
y luego darle otra vez al ./configure de rigor.
Las opciones de configuración son variadas, a continuación os resumo las mas típicas:
- xxxdir=<path>: estas son las típicas para indicar donde se dejan las cosas. En el ejemplo todo se va a dejar en /usr/local/bacula y luego cada cosa un poco en su sitio. Ojo que el directorio /usr/local/bacula/run no se crea automáticamente, y en el es donde deja el sistema el fichero con el pid del proceso de modo que al arrancar si no se encuentra dicho directorio falla pero no se muestra en pantalla el fallo (sale un OK en verde mas falso que Judas), asi q ojo al dato con esto.
- enable-smartalloc: es un parámetro q recomiendan poner siempre: detecta leaks de memoria y otras historias internas del programa.
- Fruslerías graficas: enable-bat, with-qtw, enable-gnome, enable-bwx-console, enable-tray-monitor etc… para enganchar con las X. Pasando de esto.
- enable-batch-insert: si la base de datos utiliza una librería threads-safe entonces bacula hará inserts por lotes, lo que le supone un ahorro de tiempo muy considerable. Con SQLite2 esto no fona y en según que SOs puede petar, asi que al loro. En pleno siglo XXI y que todavía anden con mierdas de estas…
- enable-static-<modulo>: cada modulo se pueden compilar de forma estática para no depender de las librerías instaladas y su posterior cambio. Ya sabéis: estático: mas gordo y rápido, dinámico: mas ligero pero algo mas lento. A los efectos no se nota asi que pasando de estático.
- enable-client-only: si solo queréis compilar el fd, que es lo suyo en las máquinas de las que se va a hacer el backup.
- enable-build-<modulo>: si queréis compilar ciertos módulos (el director solo, el sd etc) para poder desperdigar bien el Bacula en diversas maquinas.
- with-<database>: elegir la bd soportada que mas os guste
- –enable-conio/readline. Esto sirve para soportar buffer en la consola y asi teclear menos. Se requieren ncurses para ello asi que hay que instalarlas si vuestro sistema no lo hace por defecto.
- with-<modulo>-password: si no se indica se elige una pass aleatoria para cada modulo que se incluye en los ficheros de configuración automáticamente.
- with-<modulo>-user: usuario bajo el que se ejecuta el modulo. Yo lo dejo por defecto, q es root.
- with-<modulo>-group: grupo bajo el que se ejecuta el modulo. Yo lo dejo por defecto, q es root.
- with-db-name/user: ya sabes, usuario y nombre de la bd. Por defecto bacula.
Una vez hecho esto hay que crear la base de datos de Bacula. Esto se hace con
/usr/local/apache/etc/create_mysql_database
Y hasta aqui llega la instalación de Bacula como tal. Par arrancarlo, y siempre tomando como referencia los paths que he puesto en el configure habrá que hacer:
/usr/local/bacula/etc/bacula start
y con esto se nos levantan los 3 demonios: fd, sd y director.
Web
Ahora vamos con el modulito que nos va a permitir acceder al mondongo vía web. Para ello hay que instalar un apache con las extensiones de php pertinentes:
yum install httpd php php-gettext php-pear-DB.noarch php-gd.i386
Con esto liquidado nos bajamos el paquete de nombre bacula-gui.tar.gz
wget https://sourceforge.net/projects/bacula/files/bacula/3.0.3/bacula-gui-3.0.3.tar.gz/download
le hacemos la jugada típica
gunzip bacula-gui.tar.gz
tar xvf bacula-gui.tar
Esto nos deja con una carpeta llena de ficheros y mas carpetas. Tenemos que copiar todo el contenido de la carpeta "bacula-web" al root de la web, en mi caso /var/www/html.
Una vez copiado el tema tenéis un fichero a toquetear llamado configs/bacula.conf. Es bastante auto descriptivo y tiene las típicas chorradillas de configuración (donde esta el mysql, como se llama la base de datos llevara el catalog etc).
Arrancamos el apache con /etc/init.d/httpd start y hacemos una petición a la pagina test.php por ver si todo ha ido como debe o algo se nos ha escapado. Esta pagina además nos indica si satisfacemos las dependencias (GD, Gettext y Pear DB) y nos hace un text grafico vía GD: el front-end solo usa gráficos PNG asi que si no se ven los correspondientes a los formatos BMP, JPEG y GIF no debe de preocuparnos en principio.
Y hasta aqui esta jornada de instalaciones y mariconeo de pantalla varios. Ya la próxima sesión por fin podremos configurar el Bacula para que nos haga unas copias de seguridad fenomenales.