Página creada con «🐳💾 Tutorial: Instalar Bacula con Interfaz Web (Bacularis) usando Docker Este tutorial te guía para instalar Bacula con la interfaz web Bacularis, todo en contenedores Docker. Es ideal para quienes buscan una solución de backups profesional con gestión gráfica. ✅ '''¿Qué es Bacula?''' Bacula es una poderosa solución de backup empresarial que permite administrar copias de seguridad, restauraciones y verificación de datos en red. ✅ '''¿Qué es Bacu…»
 
m se actualizo la instalacion de bacula con bacularis
Línea 1: Línea 1:
🐳💾 Tutorial: Instalar Bacula con Interfaz Web (Bacularis) usando Docker
Tutorial de instalación Bacula - Docker.


Este tutorial te guía para instalar Bacula con la interfaz web Bacularis, todo en contenedores Docker. Es ideal para quienes buscan una solución de backups profesional con gestión gráfica.
'''Introducción.'''


✅ '''¿Qué es Bacula?'''
Esta guía detalla el proceso de instalación y configuración de un servidor de Bacula utilizando la imagen bacularis/bacularis-standalone en Docker, y cómo configurar un cliente Bacula (File Daemon) para realizar backups. El objetivo es proporcionar un camino claro y evitar los problemas comunes encontrados durante la configuración inicial.


Bacula es una poderosa solución de backup empresarial que permite administrar copias de seguridad, restauraciones y verificación de datos en red.
=== ¿Por qué Bacula y Docker? ===
Bacula es una suite de software de código abierto para gestionar backups, restauración y verificación de datos. Es robusta y escalable, ideal para entornos de producción.Docker nos permite empaquetar Bacula (y Bacularis, su interfaz web) en un contenedor aislado, facilitando la instalación, el despliegue y la gestión. La imagen bacularis/bacularis-standalone simplifica aún más al incluir todos los componentes de Bacula (Director, Storage Daemon, Catálogo) y la interfaz web Bacularis en un único contenedor.


'''¿Qué es Bacularis?'''
'''Instalación de Docker y Despliegue de Bacularis.'''


Bacularis es una interfaz web moderna para Bacula, que facilita la administración del sistema de backups sin necesidad de editar archivos manualmente o usar la línea de comandos.
'''a)''' Crear Directorio donde se harán los backups:


📦 '''Requisitos'''
''sudo mkdir -p /mnt/bacula_storage''


- Docker y Docker Compose instalados
'''b)''' En la máquina Host (La que va a hacer los backups), hay que instalar docker:


- Sistema Linux (recomendado: Ubuntu o Kali)
''# Eliminar versiones antiguas (si existen)''


- Acceso a una terminal con permisos de superusuario
''sudo apt remove docker docker-engine docker.io containerd runc''


🛠️ '''Paso 1:''' Instalar Docker y Docker Compose (si no los tenés)
''# Instalar dependencias''


sudo apt update
''sudo apt update''


sudo apt install docker.io docker-compose -y
''sudo apt install ca-certificates curl gnupg lsb-release -y''


sudo systemctl enable docker --now
''# Añadir la clave GPG oficial de Docker''


📁 '''Paso 2''': Crear una carpeta para el proyecto
''sudo mkdir -p /etc/apt/keyrings''


mkdir ~/bacularis-docker
''curl -fsSL <nowiki>https://download.docker.com/linux/debian/gpg</nowiki> | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg''


cd ~/bacularis-docker
''# Añadir el repositorio de Docker''


🧾 '''Paso 3''': Crear el archivo docker-compose.yml
''echo \''


nano docker-compose.yml
'' "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] <nowiki>https://download.docker.com/linux/debian</nowiki> \''


Y pegá el siguiente contenido:
'' $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null''


'''version: '3''''
''# Instalar Docker Engine''


'''services:'''
''sudo apt update''


'''  bacularis:'''
''sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y''


'''    image: bacularis/bacularis-standalone'''
''# (Opcional) Añadir tu usuario al grupo docker para no usar sudo''


'''    container_name: bacularis'''
''sudo usermod -aG docker $USER''


'''    ports:'''
''# Sal de tu sesión SSH y vuelve a entrar para que los cambios surtan efecto''


'''      - "9097:9097"'''
'''c)''' Despliegue del contenedor Bacularis Standalone.


'''    environment:'''
<nowiki>#</nowiki> Detener y eliminar el contenedor existente (si lo hay)


'''      - BACULA_DIR_PASSWORD=admin'''
docker stop bacularis


'''      - BACULA_SD_PASSWORD=admin'''
docker rm bacularis


'''      - BACULA_FD_PASSWORD=admin'''
<nowiki>#</nowiki> Ejecutar el nuevo contenedor Bacularis


'''    volumes:'''
docker run --name bacularis \


'''      - bacularis-data:/var/lib/bacula'''
 -p 80:80 \


'''    networks:'''
 -p 9101:9101 \


'''      - bacularis-net'''
 -p 9102:9102 \


'''volumes:'''
 -p 9103:9103 \


'''  bacularis-data:'''
 -v /opt/bacularis/config:/opt/bacula/etc \


'''networks:'''
 -v /mnt/bacula_storage:/raid \


'''  bacularis-net:'''
 --restart=unless-stopped \


▶️ '''Paso 4''': Iniciar los servicios
 -d bacularis/bacularis-standalone


sudo docker-compose up -d
'''Configuración inicial de Bacula.'''


✅ '''Paso 5''': Verificar que el contenedor esté corriendo
La interfaz web de Bacularis es la forma recomendada y más cómoda para configurar Bacula. Bacularis se encargará de traducir tus entradas web a los archivos de configuración de Bacula (bacula-dir.conf, bacula-sd.conf, etc.) y, gracias al volumen mapeado (-v /opt/bacularis/config:/opt/bacula/etc), estos cambios se guardarán de forma persistente en tu host.


sudo docker-compose ps
Accede a Bacularis en http://<IP_DE_TU_SERVIDOR_DEBIAN>. La contraseña por defecto de Bacularis suele ser admin/admin o bacularis/bacularis. Revisa la documentación específica de la imagen si no es así.


🌐 '''Paso 6''': Acceder a la interfaz web
Bacula se organiza en recursos que definen sus diferentes partes y cómo interactúan. Aunque los configurarás a través de Bacularis, es fundamental entender su propósito


<nowiki>http://localhost:9097</nowiki>
==== Pasos Generales de Configuración en Bacularis Web UI ====
Hay que hacer un mapeo de volumen del storage daemon del contenedor para afuera del contenedor.


Credenciales por defecto:
# '''Configurar Storage Daemon Device:'''
#* Navega a la sección de "Storage Daemons" y luego a "Devices".
#* Localiza o crea un dispositivo. Asegúrate de que el campo "Archive Device" esté configurado como     . Este es el punto de montaje ''dentro del contenedor''.
#* Dale un Name significativo a este Device (ej: FileStorage).
#* Guarda los cambios.
# '''Configurar Director Storage Resource:'''
#* Navega a la sección "Director" y luego a "Storage".
#* Localiza el Storage resource (puede llamarse File o similar).
#* Verifica que Address sea localhost y Port sea 9103.
#* '''¡CRÍTICO!''' En el campo SD Address, ingresa la IP de tu servidor donde se respaldaran los datos.
#* En el campo Device, asegúrate de que el nombre coincida exactamente con el Name que le diste a tu dispositivo de almacenamiento en el paso anterior (ej: FileStorage).
#* Configura la Password para la comunicación con el SD (debe coincidir con la del SD).
#* Guarda los cambios.
# '''Configurar Cliente (File Daemon):'''
#* Navega a la sección "Clients".
#* Crea un nuevo cliente o edita uno existente.
#* Asigna un Name .
#* Configura la Address con la IP de tu máquina cliente.
#* Define una Password'''segura''' para este cliente. ¡Necesitarás esta misma contraseña en la configuración del cliente Bacula
#* Guarda los cambios.
# '''Configurar FileSet:'''
#* Navega a la sección "FileSets".
#* Crea un nuevo FileSet.
#* Dale un Name
#* Define las rutas a Include y Exclude en la máquina cliente (ej: /home/agus para incluir y /home/agus/Downloads para excluir).
#* Guarda los cambios.
# '''Configurar Pool:'''
#* Navega a la sección "Pools".
#* Verifica o configura el Pool Default. Asegúrate de que tenga una política de retención (Volume Retention) y que AutoPrune y Recycle estén activados.
#* Guarda los cambios.
# '''Configurar Job:'''
#* Navega a la sección "Jobs".
#* Crea un nuevo Job.
#* Dale un Name (ej: TEST).
#* Asigna el Client (ej: kali-client), FileSet (ej: Kali Home), Storage (ej: File), y Pool (ej: Default) que acabas de configurar.
#* Selecciona un Schedule (puedes usar uno predefinido o crear uno).
#* Guarda los cambios.


Usuario: admin
=== Ejecutar el Primer Backup y Verificación ===


Contraseña: admin
==== Reiniciar el Contenedor Bacularis ====
Después de realizar cambios en la configuración de Bacula a través de Bacularis, siempre debes reiniciar el contenedor para que Bacula cargue la nueva configuración.


⚠️ '''Paso 7''': Solución al error de conexión con el Director
docker restart bacularis


1. Entrá al contenedor:
==== Iniciar el Job de Backup ====
Puedes iniciar el job desde la interfaz web de Bacularis (recomendado) o desde la consola de Bacula (bconsole).'''Desde Bacularis Web UI:'''


sudo docker exec -it bacularis bash
* Navega a la sección "Jobs" y busca el Job TEST que configuraste.
* Selecciona la opción para ejecutar el Job (usualmente un botón de "Run" o "Start").
* Sigue las indicaciones (ej: si es necesario, Bacula te pedirá etiquetar un volumen si el pool no tiene uno disponible).


2. Editá el archivo:
'''Configuracion del cliente'''


'''echo 'Director {'''
En la maquina que será respaldada, se necesita instalar y configurar El bacula file Daemon (bacula-fd)


'''  Name = bacula-dir'''
sudo apt update
 
'''  DIRport = 9101'''
 
'''  address = bacularis'''
 
'''  Password = "admin"'''
 
'''  Description = "Conexión desde Bacularis"'''
 
'''}' > /etc/bacula/bconsole-remote.conf'''
 
3. Salí del contenedor y reiniciá:
 
'''exit'''
 
sudo docker restart bacularis
 
🧪 '''Paso 8''': Volver a acceder
 
<nowiki>http://localhost:9097</nowiki>
 
🧠 Extra: ¿Qué incluye este contenedor?
 
La imagen bacularis/bacularis-standalone incluye:
 
- Bacula Director (bacula-dir)
 
- Bacula Storage Daemon (bacula-sd)
 
- Bacula File Daemon (bacula-fd)
 
- Web server + Bacularis Web UI


- Cliente bconsole para conexión
sudo apt install bacula-client -y


📌 Resultado final
Aplica los cambios reiniciando el servicio y asegúrate de que inicie automáticamente.


✔️ Bacula funcionando
sudo systemctl restart bacula-fd


✔️ Gestión web con Bacularis
sudo systemctl enable bacula-fd # Para que inicie con el sistema


✔️ Todo en Docker, limpio, portable y fácil de administr
sudo systemctl status bacula-fd # Verifica el estado

Revisión del 17:35 12 ago 2025

Tutorial de instalación Bacula - Docker.

Introducción.

Esta guía detalla el proceso de instalación y configuración de un servidor de Bacula utilizando la imagen bacularis/bacularis-standalone en Docker, y cómo configurar un cliente Bacula (File Daemon) para realizar backups. El objetivo es proporcionar un camino claro y evitar los problemas comunes encontrados durante la configuración inicial.

¿Por qué Bacula y Docker?

Bacula es una suite de software de código abierto para gestionar backups, restauración y verificación de datos. Es robusta y escalable, ideal para entornos de producción.Docker nos permite empaquetar Bacula (y Bacularis, su interfaz web) en un contenedor aislado, facilitando la instalación, el despliegue y la gestión. La imagen bacularis/bacularis-standalone simplifica aún más al incluir todos los componentes de Bacula (Director, Storage Daemon, Catálogo) y la interfaz web Bacularis en un único contenedor.

Instalación de Docker y Despliegue de Bacularis.

a) Crear Directorio donde se harán los backups:

sudo mkdir -p /mnt/bacula_storage

b) En la máquina Host (La que va a hacer los backups), hay que instalar docker:

# Eliminar versiones antiguas (si existen)

sudo apt remove docker docker-engine docker.io containerd runc

# Instalar dependencias

sudo apt update

sudo apt install ca-certificates curl gnupg lsb-release -y

# Añadir la clave GPG oficial de Docker

sudo mkdir -p /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# Añadir el repositorio de Docker

echo \

 "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \

 $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Instalar Docker Engine

sudo apt update

sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y

# (Opcional) Añadir tu usuario al grupo docker para no usar sudo

sudo usermod -aG docker $USER

# Sal de tu sesión SSH y vuelve a entrar para que los cambios surtan efecto

c) Despliegue del contenedor Bacularis Standalone.

# Detener y eliminar el contenedor existente (si lo hay)

docker stop bacularis

docker rm bacularis

# Ejecutar el nuevo contenedor Bacularis

docker run --name bacularis \

 -p 80:80 \

 -p 9101:9101 \

 -p 9102:9102 \

 -p 9103:9103 \

 -v /opt/bacularis/config:/opt/bacula/etc \

 -v /mnt/bacula_storage:/raid \

 --restart=unless-stopped \

 -d bacularis/bacularis-standalone

Configuración inicial de Bacula.

La interfaz web de Bacularis es la forma recomendada y más cómoda para configurar Bacula. Bacularis se encargará de traducir tus entradas web a los archivos de configuración de Bacula (bacula-dir.conf, bacula-sd.conf, etc.) y, gracias al volumen mapeado (-v /opt/bacularis/config:/opt/bacula/etc), estos cambios se guardarán de forma persistente en tu host.

Accede a Bacularis en http://<IP_DE_TU_SERVIDOR_DEBIAN>. La contraseña por defecto de Bacularis suele ser admin/admin o bacularis/bacularis. Revisa la documentación específica de la imagen si no es así.

Bacula se organiza en recursos que definen sus diferentes partes y cómo interactúan. Aunque los configurarás a través de Bacularis, es fundamental entender su propósito

Pasos Generales de Configuración en Bacularis Web UI

Hay que hacer un mapeo de volumen del storage daemon del contenedor para afuera del contenedor.

  1. Configurar Storage Daemon Device:
    • Navega a la sección de "Storage Daemons" y luego a "Devices".
    • Localiza o crea un dispositivo. Asegúrate de que el campo "Archive Device" esté configurado como     . Este es el punto de montaje dentro del contenedor.
    • Dale un Name significativo a este Device (ej: FileStorage).
    • Guarda los cambios.
  2. Configurar Director Storage Resource:
    • Navega a la sección "Director" y luego a "Storage".
    • Localiza el Storage resource (puede llamarse File o similar).
    • Verifica que Address sea localhost y Port sea 9103.
    • ¡CRÍTICO! En el campo SD Address, ingresa la IP de tu servidor donde se respaldaran los datos.
    • En el campo Device, asegúrate de que el nombre coincida exactamente con el Name que le diste a tu dispositivo de almacenamiento en el paso anterior (ej: FileStorage).
    • Configura la Password para la comunicación con el SD (debe coincidir con la del SD).
    • Guarda los cambios.
  3. Configurar Cliente (File Daemon):
    • Navega a la sección "Clients".
    • Crea un nuevo cliente o edita uno existente.
    • Asigna un Name .
    • Configura la Address con la IP de tu máquina cliente.
    • Define una Passwordsegura para este cliente. ¡Necesitarás esta misma contraseña en la configuración del cliente Bacula
    • Guarda los cambios.
  4. Configurar FileSet:
    • Navega a la sección "FileSets".
    • Crea un nuevo FileSet.
    • Dale un Name
    • Define las rutas a Include y Exclude en la máquina cliente (ej: /home/agus para incluir y /home/agus/Downloads para excluir).
    • Guarda los cambios.
  5. Configurar Pool:
    • Navega a la sección "Pools".
    • Verifica o configura el Pool Default. Asegúrate de que tenga una política de retención (Volume Retention) y que AutoPrune y Recycle estén activados.
    • Guarda los cambios.
  6. Configurar Job:
    • Navega a la sección "Jobs".
    • Crea un nuevo Job.
    • Dale un Name (ej: TEST).
    • Asigna el Client (ej: kali-client), FileSet (ej: Kali Home), Storage (ej: File), y Pool (ej: Default) que acabas de configurar.
    • Selecciona un Schedule (puedes usar uno predefinido o crear uno).
    • Guarda los cambios.

Ejecutar el Primer Backup y Verificación

Reiniciar el Contenedor Bacularis

Después de realizar cambios en la configuración de Bacula a través de Bacularis, siempre debes reiniciar el contenedor para que Bacula cargue la nueva configuración.

docker restart bacularis

Iniciar el Job de Backup

Puedes iniciar el job desde la interfaz web de Bacularis (recomendado) o desde la consola de Bacula (bconsole).Desde Bacularis Web UI:

  • Navega a la sección "Jobs" y busca el Job TEST que configuraste.
  • Selecciona la opción para ejecutar el Job (usualmente un botón de "Run" o "Start").
  • Sigue las indicaciones (ej: si es necesario, Bacula te pedirá etiquetar un volumen si el pool no tiene uno disponible).

Configuracion del cliente

En la maquina que será respaldada, se necesita instalar y configurar El bacula file Daemon (bacula-fd)

sudo apt update

sudo apt install bacula-client -y

Aplica los cambios reiniciando el servicio y asegúrate de que inicie automáticamente.

sudo systemctl restart bacula-fd

sudo systemctl enable bacula-fd # Para que inicie con el sistema

sudo systemctl status bacula-fd # Verifica el estado