Como instalar Bacula en CentOS 7

Bacula en CentOS 7

by Mayra Salas

Este blog te guiará Como instalar bacula en Centos 7, una solución de respaldo y recuperación de datos de código abierto, en un servidor Centos7. Aprenderás a configurar y optimizar Bacula para garantizar la seguridad y eficiencia de tus datos.

Requisitos previos

Para completar este tutorial, necesitará lo siguiente:

Requerimientos de sistema

  • Memoria : 4GB o más
  • Cpu: 4 Cores a más
  • Disco duro : Más de 50GB de espacio disponible en disco duro
  • Sistema : CentOS7, garantizar que sea un sistema operativo limpio

Contenido del Script de Instalación:

El script proporciona una instalación automatizada de Bacula, abordando aspectos importantes como la configuración de contraseñas, la desactivación de SELinux (en caso de estar habilitado), y la configuración del firewall para permitir el tráfico necesario. Además, se encarga de la instalación de MariaDB y la configuración de la base de datos de Bacula.

El script realiza las siguientes acciones:

  1. Detiene el servicio PackageKit.
  2. Solicita y configura contraseñas para MySQL y Bacula.
  3. Desactiva SELinux si está habilitado.
  4. Configura reglas de firewall para los puertos de Bacula.
  5. Descarga e instala las dependencias y paquetes de Bacula.
  6. Instala y configura MariaDB, estableciendo contraseñas y eliminando configuraciones innecesarias.
  7. Configura la base de datos de Bacula y otorga los privilegios necesarios.
  8. Enlaza binarios de Bacula y arranca el servicio.
  9. Reemplaza las contraseñas en los archivos de configuración.
  10. Reinicia el servicio Bacula Director.
  11. Instala Webmin, un panel de control web para administrar el sistema.
  12. Configura el firewall para Webmin y reinicia el servidor
#!/bin/bash

# Verificar si PackageKit está en ejecución

echo "deteneniedo Packagekit"
sudo systemctl stop packagekit

# Obtener nueva contraseña del usuario
read -p "Ingresa la contraseña de MySQL para el usuario root: " mysql_root_password
read -p "Ingresa la nueva contraseña para la base de datos bacula: " nueva_contrasena

# Verificar si SELinux está habilitado
if [ "$(getenforce)" = "Enforcing" ]; then
    echo "SELinux está habilitado. Deshabilitando de manera permanente..."

    # Deshabilitar SELinux de manera permanente
    sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

    echo "SELinux ha sido deshabilitado de manera permanente. Por favor, reinicie el sistema para aplicar los cambios."
else
    echo "SELinux ya está deshabilitado."
fi

# Configurar reglas del firewall
sudo firewall-cmd --add-port=9101/tcp --permanent
sudo firewall-cmd --add-port=9102/tcp --permanent
sudo firewall-cmd --add-port=9103/tcp --permanent
sudo firewall-cmd --reload

# Descargar e instalar Bacula
wget --no-check-certificate https://www.bacula.org/packages/5bcfda598e984/rpms/13.0.3/el7/x86_64/bacula-libs-13.0.3-23050308.el7.x86_64.rpm
wget --no-check-certificate https://www.bacula.org/packages/5bcfda598e984/rpms/13.0.3/el7/x86_64/bacula-mysql-13.0.3-23050308.el7.x86_64.rpm
wget --no-check-certificate https://www.bacula.org/packages/5bcfda598e984/rpms/13.0.3/el7/x86_64/bacula-client-13.0.3-23050308.el7.x86_64.rpm

rpm -Uvh bacula-libs-13.0.3-23050308.el7.x86_64.rpm
yum install bacula-mysql-13.0.3-23050308.el7.x86_64.rpm -y

# Instalar y configurar MariaDB
yum install mariadb-server -y
systemctl enable mariadb
systemctl start mariadb

# Eliminar usuarios anónimos, deshabilitar logueo remoto y establecer nueva contraseña
mysql -u root <<MYSQL_SCRIPT
UPDATE mysql.user SET Password=PASSWORD('${nueva_contrasena}') WHERE User='bacula';
DELETE FROM mysql.user WHERE User='';
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');
DROP DATABASE IF EXISTS test;
DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';
FLUSH PRIVILEGES;
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('${mysql_root_password}');
MYSQL_SCRIPT


# Configurar base de datos de Bacula
cd /opt/bacula/scripts/
./create_mysql_database -u root -p"${mysql_root_password}"
./make_mysql_tables -u root -p"${mysql_root_password}"
./grant_mysql_privileges -u root -p"${mysql_root_password}"

# Enlazar binarios de Bacula
cd /opt/bacula/bin
ln -s /opt/bacula/bin/* /usr/bin
bacula start
# Ruta al archivo bacula-dir.conf
archivo_conf="/opt/bacula/etc/bacula-dir.conf"
campo="Password"
sed -i "s/${campo}\s*=.*/${campo} = \"${nueva_contrasena}\"/" "$archivo_conf"
echo "Contraseñas reemplazadas con éxito en $archivo_conf"

# Ruta al archivo bconsole.conf
archivo_conf="/opt/bacula/etc/bconsole.conf"
campo="Password"
sed -i "s/${campo}\s*=.*/${campo} = \"${nueva_contrasena}\"/" "$archivo_conf"
echo "Contraseñas reemplazadas con éxito en $archivo_conf"

# Configurar la contraseña en MySQL
mysql -u root -p"${mysql_root_password}" <<MYSQL_SCRIPT
UPDATE mysql.user SET Password=PASSWORD('${nueva_contrasena}') WHERE User='bacula';
FLUSH PRIVILEGES;
EXIT;
MYSQL_SCRIPT

# Configurar contraseña en el archivo bacula-dir.conf
archivo_conf="/opt/bacula/etc/bacula-dir.conf"
# Reemplazar la contraseña en el campo "dbname" de la sección "Catalog"
sed -i "/^Catalog {/,/^}/{s/\(dbpassword\s*=\s*\"\).*\"/\1${nueva_contrasena}\"/}" "$archivo_conf"
echo "Contraseña del catálogo reemplazada con éxito en $archivo_conf"

# Reiniciar Bacula
systemctl restart bacula-director

# Instalar Webmin
yum install httpd -y
yum install perl-Digest-MD5 -y
yum install dnf -y

systemctl enable httpd
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload


yum install -y perl perl-Net-SSLeay openssl perl-IO-Tty perl-Encode-Detect
wget --no-check-certificate https://sitsa.dl.sourceforge.net/project/webadmin/webmin/2.105/webmin-2.105-1.noarch.rpm
rpm -Uvh webmin-2.105-1.noarch.rpm
firewall-cmd --add-port=10000/tcp --permanent
firewall-cmd --reload
server_ip=$(hostname -I | awk '{print $1}')
echo "Webmin instalado con éxito. Accede a https://${server_ip}:10000"
echo "El equipo se reiniciará en 20 segundos" && sleep 20s && sudo reboot

Pasos de Ejecución:

  1. Descarga del Script:
    • Asegúrate de tener acceso al script de instalación. Puedes crear un nuevo archivo y copiar el contenido del script en él.
  2. Concesión de Permisos:
    • Otorga permisos de ejecución al script para que pueda ser ejecutado. Puedes hacerlo con el siguiente comando: chmod +x nombre_del_script.sh
  3. Ejecución del Script:
    • Ejecuta el script con privilegios de superusuario (root). Puedes utilizar el siguiente comando: sudo ./nombre_del_script.sh
  4. Interacción con el Script:
    • Durante la ejecución, el script puede solicitar ciertos datos, como contraseñas de MySQL y Bacula. Proporciona la información solicitada y sigue las instrucciones.
  5. Revisión de Salida:
    • Después de completar la ejecución, revisa la salida del script en busca de posibles errores o mensajes informativos. Asegúrate de que todas las operaciones se hayan realizado correctamente.
  6. Acceso a Webmin:
    • Si has optado por instalar Webmin, accede a él a través de un navegador web. La dirección sería https://tu_dirección_ip:10000. Utiliza las credenciales apropiadas para iniciar sesión.
  7. Reinicio del Servidor (Recomendado):
    • Si el script indica que el servidor se reiniciará automáticamente, espera a que finalice y vuelve a conectarte después del reinicio.

Recuerda revisar la salida del script y cualquier mensaje informativo que pueda proporcionar para garantizar una instalación exitosa. También ten en cuenta que este script está diseñado para CentOS7, y su uso en otras versiones o distribuciones podría requerir modificaciones.

Nota: Se recomienda revisar y entender cada paso antes de ejecutar el script para asegurarse de que se adapte a tus necesidades específicas. Además, ten en cuenta que el servidor se reiniciará automáticamente al finalizar la instalación.

Este script facilita la instalación de Bacula en Centos7, proporcionando una solución eficiente y segura para la gestión de respaldo de datos.

Enlaces de referencia

Related Posts

Leave a Comment