En esta publicacion vamos a realizar una instalacion basica de BACULA
Instalación
Sistema de Respaldo Bacula
Esquema de Bacula
Bacula es un software cliente-servidor, éste se divide en 4 módulos que son:
• Director (bacula-dir)
• Storage Daemon (bacula-sd)
• File Daemon (bacula-fd)
• Console (bconsole)
- Actualizar los Ports.
- Instalar MySQL Server 4.1.XY.
- Instalar Bacula-Server con soporte para
MySQL.
- Instalar Bacula-Client desde los ports.
- Configurar la base de datos MySQL Server.
- Configurar Bacula-Server para MySQL.
- Cambio de extensiones a archivos de bacula.
- Configurar archivo bacula-fd.conf(Cliente de
bacula).
- Configurar archivo
bacula-sd.conf(Storage Daemon).
- Configurar archivo bconsole.conf(Console).
- Configurar archivo bacula-dir.conf(Director
Daemon).
- Probando los archivos de Bacula.
- Instalando el Cliente de Bacula en Windows
NT4/2000/XP/2003.
- Ejecutar Bacula-Server por primera vez.
- Accesando a Bacula desde bconsole.
- Ejecutando el primer Respaldo Full y
Diferencial.
- Restaurando archivos con Bacula.
PASO
2: Instalación de MySQL
1. instalar el software
MySQL server desde el árbol de ports:
root# cd
/usr/ports/databases/mysql51-server/ && make install clean
2. Generamos las tablas de permisos para MySQL:
root# /usr/local/bin/mysql_install_db
3. Cambiamos el propietario y grupo del directorio
de datos:
root# chown
-R mysql:mysql /var/db/mysql/
4. Una vez completados los
pasos anteriores vamos a editar el arvhico rc.conf para que nos inicie
automáticamente MySQL
root# ee /etc/rc.conf
Y agregamos la siguiente
línea:
mysql_enable=”YES”
Cuando estemos listos
pulsamos la tecla ESC “escape”, luego sabe y finalmente sabe change.
5. Ahora reiniciamos la maquina con un simple “reboot”
6. A continuación establecer la contraseña del
administrador de la base de datos (Atención no poner la contraseña que tenemos
para el usuario root):
root# /usr/local/bin/mysqladmin
-u root password tupassword
7. Reiniciamos
y listo.
PASO 3: Instalar Bacula-Server con soporte para
MySQL.
root#cd
/usr/ports/sysutils/bacula-server
root #make install clean
Seleccionar
el soporte para MySQL. También puede utilizarse PostgreSQL.
PASO 4: Instalar Bacula-Client desde los ports.
root
#cd /usr/ports/sysutils/bacula-client
root #make install clean
Este
paso debe hacerse en todos los
equipos CLIENTES de Bacula.
PASO 5: Configurar la base de datos MySQL Server.
1. Ejecutar mysql_install_db con el usuario mysql
que fue creado cuando instalamos mysql, este script lo encontramos en
/usr/local/bin
root
#/usr/local/bin/mysql_install_db --user=mysql
Con esto hemos creado las bases de datos que usa
mysql para funcionar internamente, aun no se está ejecutado el servidor, esto
lo hacemos en el siguiente paso.
2. Iniciar la base de datos con el scrip
mysqld_safe
root
#/usr/local/bin/mysqld_safe &
Aquí nos arroja cierta información o bien no se
ejecuta el servidor, pero vamos probando si está corriendo:
root
#sockstat -l4
USER COMMAND
PID FD PROTO
LOCAL ADDRESS FOREIGN
ADDRESS
mysql mysqld 530
10 tcp4 *:3306 *:*
Aquí podemos ver si está corriendo el servidor mysql,
si no aparece por ahí el puerto 3306 abierto, nos indica que no se ejecuto, a
veces una reinicio del sistema arregla todo. Agregar mysql al archivo
/etc/rc.conf, con la siguiente línea:
mysql_enable="YES"
Este es el básico para llevar a cabo esto, pero
también tenemos estos que son opcionales:
mysql_limits
(bool): YES o NO
mysql_dbdir="/var/db/mysql"
mysql_args (str):
Por último tenemos unos scripts en el directorio
de mysql /usr/local/share/mysql que podemos copiar en /etc/ para que mysql lea
antes de ejecutarse, estos archivos son parámetros globales para mysql y estos
son:
- my-huge.cnf
- my-large.cnf
- my-medium.cnf
- my-small.cfg
Cada uno tiene sus características, pero solo
podemos darle uno a mysql, en mí caso usé my-large.cfg, así que mando una copia
a /etc:
root
#cp /usr/local/share/mysql/my-large.cnf
/etc/
Cada uno de ellos trae
comentarios sobre cuando aplica.
Reiniciar el sistema y
verificar que mysql debe estar ejecutándose.
PASO 6: Configurar Bacula-Server para MySQL.
a) Ejecutar el script de
nombre grant_mysql_privileges. Ejecutar el script con el nombre de usuario y
contraseña que se le dio a MySQL, esto se hace así:
root#cd
/usr/local/share/bacula
root#./grant_mysql_privileges -u root -p
Enter password:
... información
... información
... información
La última línea nos indica que todo salió bien y
dice así:
"Privileges
for bacula granted."
b) Enseguida debemos
ejecutar el script de nombre create_mysql_databases, así:
root#./create_mysql_databases
-u root -p
Enter password:
Creation
of bacula databases succeeded.
Con esto se ha creado la base de datos de bacula
en MySQL.
c) Crear las tablas de
bacula, para ello debemos ejecutar el script de nombre create_mysql_tables asi:
root#./make_mysql_tables
-u root -p
Enter password:
Creation
of Bacula MySQL tables succeeded.
Con todo lo anterior el servidor de bacula está
listo para empezar a trabajar con él. Esto se puede comprobar accesando a la
consola de mysql y ver las bases de datos que esta posee.
root#mysql
-u root -p
Enter password:
...Informacion
que arroja mysql
mysql>show databases;
+------------------------------+
|Databases |
+------------------------------+
|information_schema |
|bacula |
|mysql |
|test |
+------------------------------+
d) Salir de mysql.
PASO 7: Cambiar extensiones a archivos de
configuracion de bacula
Los archivos de configuración están en el
directorio /usr/local/etc, todos terminan con la extensión .new o .sample, para
que bacula los pueda leer deben terminar en .conf, así que los copiamos en el mismo
directorio pero eliminando la extensión .new o .sample.
root#cd
/usr/local/etc
root#cp bacula-dir.conf.sample bacula-dir.conf
Esto lo hacemos con los demás archivos los cuales
en total son 4:
- bacula-sd
- bacula-fd
- bconsole
paso 8: CONFIGURACIÓN archivo bacula-fd.conf (Cliente
de Bacula).
Nota:
la configuración de cada uno de los archivos, es la ocupada en el DECOM. Se
debe reemplazar todos los “tool”, por el usuario que se quiera, asi como las
contraseñas. Ojo con las contraseñas en el cliente, storage y bconsole, ya que
debe n ser las mismas que están en el Director.
El
archivo a editar es el bacula-fd.conf, esto se hace con el siguiente comando:
root#ee bacula-fd.conf
Configuración:
Director
{
Name = tool-dir #Name=Nombre del director que puede accesar a este
cliente.
Password = "cristian3" #Password = Password que debe utilizar el
director si desea accesar a este cliente.
}
Director
{
Name = tool-mon #Name = Nombre del monitor a donde vamos a mandar nuestros
mensajes de lo que estamos haciendo.
Password = "console" #Password que debemos utilizar si deseamos comunicarnos
con el monitor.
Monitor =
yes
}
FileDaemon {
Name = tool-fd #Name=Nombre
del cliente
FDport = 9102 #Los demas datos dejarlos igual.
WorkingDirectory = /var/db/bacula
Pid
Directory = /var/run
Maximum Concurrent Jobs = 20
}
#Aquí
solo le indicamos que los mensajes generados se los mande a el director aquí
indicado.
#director= Nombre del director al que deseamos informar de nuestros mensajes.
Messages
{
Name = Standard
director = tool-dir = all, !skipped, !restored
}
paso 9: Configuracion archivo bacula-sd.conf
(Storage bacula).
El archivo a editar es el bacula-sd.conf, esto se hace con el
siguiente comando:
root#ee bacula-sd.conf
Configuración:
Storage { # definition of
myself
Name =
tool-sd #Name= Nombre de demonio
SDPort
= 9103 # Director's
port
WorkingDirectory = "/var/db/bacula"
Pid Directory
= "/var/run"
Maximum
Concurrent Jobs = 20
}
# List Directors who are permitted to contact
Storage daemon
Director
{
Name = tool-dir #Name=Nombre del director que desea contactar a este
demonio.
Password = "bacula-sd" #Password=Password que debe usar este
director para contactar a este demonio.
}
Director {
Name =
tool-mon
Password = "console"
Monitor = yes
}
#DISPOSITIVO
PARA RESPALDAR EN ARCHIVO
Device {
Name =
FileStorage
Media
Type = File
Archive Device = /tmp #Archive
Device=Lugar del disco donde vamos a almacenar los respaldos.
LabelMedia = yes;
# lets Bacula label unlabeled media
Random
Access = yes;
AutomaticMount = yes; #
when device opened, read it
RemovableMedia = no;
AlwaysOpen = no;
}
# DISPOSITIVO PARA RESPALDAR EN DVD
#Device {
# Name =
"DVD-Writer"
# Media
Type = DVD
#
Archive Device = /dev/hdc
#
LabelMedia = yes;
# lets Bacula label unlabeled media
# Random
Access = Yes;
#
AutomaticMount = yes;
# when device opened, read it
#
RemovableMedia = yes;
#
AlwaysOpen = no;
#
MaximumPartSize = 800M;
#
RequiresMount = yes;
#
MountPoint = /mnt/cdrom;
#
MountCommand = "/bin/mount -t iso9660 -o ro %a %m";
#
UnmountCommand = "/bin/umount %m";
#
SpoolDirectory = /tmp/backup;
#
WritePartCommand = "/etc/bacula/dvd-handler %a write %e %v"
#
FreeSpaceCommand = "/etc/bacula/dvd-handler %a free"
#}
# Send all messages to the Director,
# mount messages also are sent to the email
address
Messages {
Name =
Standard
director = tool-dir = all
}