Tareas #6199
Tareas #6160: Implementación de la solución tecnológica
Implementación BackupPC
Status: | Resuelta | Start date: | 05/16/2019 | ||
---|---|---|---|---|---|
Priority: | Normal | Due date: | |||
Assignee: | TLecom | % Done: | 93% | ||
Category: | - | Estimated time: | 1.00 hour | ||
Target version: | - | Spent time: | - |
Description
Instalar y configurar BackupPC.
Subtasks
History
#1 Updated by Victor Alem over 1 year ago
- Assignee set to TLecom
#2 Updated by Victor Alem over 1 year ago
- Parent task set to #6160
#3 Updated by Junhor Archondo over 1 year ago
Backuppc:¶
Instalación:
Necesitamos que nuestro servidor de respaldos tenga una IP fija, la cual ya la tiene.
El servidor a respaldar también tiene una IP fija.
En el servidor de respaldos, lo primero que hacemos es actualizar el servidor, utilizamos el siguiente comando:
$ apt-get update
Luego, instalamos Backuppc y dependencias requeridas, con el siguiente comando:
$ apt-get install backuppc apache2-utils
Nos saldrá una ventana para ver si queremos instalar apache2, le damos enter.
El instalador creó una contraseña para el usuario backuppc y nos dio el link de acceso via web de backuppc. Presionamos Enter
Cambiamos la contraseña para el usuario backuppc, utilizando el siguiente comando:
$ sudo htpasswd /etc/backuppc/htpasswd backuppc
Paramos el servicio de backuppc utilizando el siguiente comando:
$ service backuppc stop
Configuración:
Configuración del servidor a respaldar:
Accedemos a nuestro servidor a respaldar, con el siguiente comando le instalamos rsync, que es una aplicación que permite copiar directorios y archivos.
$ apt-get install rsync
Creamos el usuario respaldo, utilizamos el siguiente comando:
$ adduser respaldo
Nosotros accederemos con clave ssh, entonces queremos bloquear el uso de contraseña.
Con el siguiente comando bloqueas el uso de la contraseña:
$ passwd -l respaldo
El siguiente paso es darle privilegios al usuario respaldo para ejecutar rsync sin pedido de contraseñas.
Para esto tenemos que tener el paquete "sudo". Si no está instalado en el servidor debemos hacerlo.
El paquete sudo permite flexibilizar y administrar las tareas del usuario root, delegando tareas (comandos) a usuarios o grupos, para ejecutarlas como el usuario administrador. Debemos editar el archivo "/etc/sudoers", es recomendable editarlo con la herramienta "visudo", ya que ésta realiza algunas comprobaciones antes de modificar el archivo. Hay que tener en cuenta que si modificamos directamente el archivo (con el comando vi /etc/sudoers) y nos equivocamos, podemos perder los privilegios de administración de la máquina. Entonces, ejecutamos el comando visudo como root para editar el archivo sudoers:
$ visudo
En el archivo agregamos las siguientes líneas, le damos permisos al usuario respaldo para ejecutar el comando rsync como root:
#Cmnd alias Specification
Cmnd_Alias RESPALDO = /usr/bin/rsync
El nombre “RESPALDO” abarca una serie de comandos (en este caso, uno solo) que después en la parte de definición de reglas serán aplicados bajo ciertos criterios.
#User privilege specification
respaldo ALL=NOPASSWD: RESPALDO
El usuario respaldo puede ejecutar desde cualquier host (ALL), sin necesidad de contraseña (NOPASSWD), el conjunto de comandos definidos en el Cmnd_Alias RESPALDO.
Creamos una clave pública/privada para hacer posible la comunicación entre el servidor de respaldos y el servidor a respaldar sin hacer uso de una contraseña.
Accedemos al servidor de respaldos:
Dentro del servidor de respaldos (Willy), en el usuario backuppc generamos la clave pública/privada con el siguiente comando:
$ ssh-keygen
Mostramos la clave en la terminal con el siguiente comando y la copiamos:
$ cat .ssh/id_rsa.pub
Accedemos al usuario respaldo del servidor a respaldar, creamos la carpeta .ssh, con el siguiente comando:
$ mkdir .ssh
Creamos el archivo authorized_keys con el siguiente comando:
$ touch authorized_keys
Pegamos la clave en el siguiente archivo:
$ vim authorized_keys
Vamos al directorio “/home/respaldos” y cambiamos permisos de la siguiente manera:
$ chown respaldo:respaldo .ssh $ chmod 700 .ssh $ chmod 644 .ssh/authorized_keys
- chown respaldo:respaldo .ssh → el siguiente comando cambiará la propiedad del directorio .ssh a un nuevo propietario llamado respaldo y el grupo es respaldo.
- 700 (RWX /---) → Con este permiso el propietario tiene el control total del archivo mientras que los demás usuarios no tendrán acceso de ningún tipo al archivo.
- chmod 644 (RW / R / R) →Con este permiso el propietario puede leer y escribir en el archivo mientras los demás solo pueden leer.
Nota: el directorio .ssh es un directorio oculto, se puede ver utilizando el comando ls -a
Scripts:
Una vez que tenemos la clave pública y lo previamente configurado, comenzamos con la creación de dos scripts.
Creamos scripts para respaldar los servicios que tienen base de datos.
La idea de los scripts es dejar en alguna carpeta los respaldos de las bases de datos y después respaldar en esa carpeta con el backuppc.
Luego, en backuppc le indicas que carpeta quieres respaldar.
En el caso de los servicios que no cuentan con base de datos, en backuppc solo elegimos la carpeta que queremos respaldar.
Los scripts están ubicados en el servidor a respaldar, en el directorio “/var/respaldo/scripts”.
El primer script respalda todas las bases de datos (mysqldump --all-databases), crea una imagen de las bases de datos y guarda el archivo generado (All_Database.sql) dentro de la carpeta “/var/respaldo/mysql”
Nota: tener en cuenta que esta imagen debe ser guardada en una carpeta dentro de los directorios que serán respaldados.
El segundo script se encarga de borrar la imagen que se creo anteriormente. Entonces, este script se ejecutará después de terminado el proceso de respaldo.
Nota: es necesario darles permisos a ambos scripts para su ejecución.
Le dimos los permisos a ambos scripts para su ejecución, con los siguientes comandos:
$chmod +x respaldoTotal.sh $chmod +x borrarRespaldo.sh
Modificamos el archivo “/etc/sudoers” agregando los scripts
#4 Updated by Victor Alem over 1 year ago
Hola Junhor, ¿puedes entrar al servidor y ejecutar el comando "lvs" como administrador y pegar aquí la salida?
#5 Updated by Junhor Archondo over 1 year ago
root@Willy:~# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
Backuppc LVM wi-ao--- 200,00g
Root LVM wi-ao--- 11,18g
Var LVM wi-ao--- 18,62g
root@Willy:~#
#6 Updated by Victor Alem over 1 year ago
Junhor Archondo escribió:
root@Willy:~# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
Backuppc LVMwi-ao---200,00g
Root LVMwi-ao---11,18g
Var LVMwi-ao---18,62g
root@Willy:~#
De este comando vemos que existe un volumen lógico para backuppc con 200 GB. ¿Los respaldos se están haciendo allí?
#7 Updated by Junhor Archondo over 1 year ago
Los respaldos los realizaremos en la web de backuppc (164.73.226.194/backuppc), en breves vamos a subir esa documentación
#8 Updated by Victor Alem over 1 year ago
Junhor Archondo escribió:
Los respaldos los realizaremos en la web de backuppc (164.73.226.194/backuppc), en breves vamos a subir esa documentación
Junhor, lo que estoy preguntando es en qué directorio se están guardando los respaldos. Lo vemos mejor hoy en clase.
#9 Updated by Junhor Archondo over 1 year ago
Los respaldos se están guardando en el servidor de respaldo (willy), en el directorio /var/lib/backuppc/pc/
#10 Updated by Junhor Archondo over 1 year ago
- File 105.png added
#11 Updated by Leonardo Olivera over 1 year ago
- File backuppc.png added
- File backuppclisa.png added
- File backuppclisa1.png added
- File backuppclisa2.png added
Configuracion de Backuppc
El siguiente paso es crear los host dentro de la web de Backuppc que van a ser respaldados, para esto iremos a edit host, presionamos en add (agrega otro host), le ponemos un nombre y user.
Después de tener los hosts creados, vamos a editar su configuración. Lo primero que haremos aca es agregar los script creados en los host que tienen base de datos:
Vemos como tenemos seleccionadas dos opciones, estas son las que editamos, el resto esta por defecto. En la opción DumpPreUserCmd tenemos la ejecución del primer script, el que se encarga de generar la imagen de la base de datos. En la opción DumpPostUserCmd tenemos el script que se encarga de eliminar la imagen creada, de este modo, antes de ejecutarse el mismo, se va a generar la imagen y una vez terminado, se eliminará para evitar que se acumulen junten imágenes innecesarias.
NOTA: En los host que no tienen base de datos no se hace el paso anteriror.
Los siguientes cambios que haremos serán en la solapa Xfer, donde vamos a elegir el método que vamos a usar (rsync), los directorios que vamos a respaldar (/etc) y por último, la forma en la cual se ejecutan los comandos, agregando sudo al comienzo en RsyncClientPath para que se ejecuten como root las líneas siguientes, en RsyncClientCmd y RsyncClientRestoreCmd cambiamos el usuario, simplemente sustituyéndolo por respaldo.
Como último paso, dentro de las configuraciones, iremos a la solapa Schedule. En esta solapa se configura todo lo necesario para pactar el estilo de respaldo que se hará, cada cuánto tiempo, cada cuánto se borrará, etc. Detallaremos a continuación los campos editados:
FullPeriod: es cada cuánto tiempo se hará un respaldo completo. La medida es en días y se recomienda que no sea un número entero, por eso se elige el 13.97, logrando así el respaldo completo cada dos semanas.
FullKeepCnt: cuántas copias de seguridad completas se mantendrán en el servidor de respaldos. En nuestro caso serán dos.
IncrKeepCnt: cuántas copias incrementales serán guardadas, en nuestro caso serán seis.
IncrAgeMax: cual será el numero máximo de copias incrementales que se conservaran. En nuestro caso serán quince.
Nota: el tipo de respaldo que decidimos utilizar es incremental, crea respaldos completos solo cada dos semanas y todos los días hace uno incremental que guardará sólo los datos que han cambiado con respecto al último respaldo hecho, ya sea incremental o total. Todos los datos que elegimos pueden cambiarse.
Con esto ya estamos en condiciones de empezar el primer respaldo completo, Backuppc se encargará de ejecutarse sólo cuando sea el momento, dependiendo de los datos que le ingresamos.
#12 Updated by Junhor Archondo over 1 year ago
- File db.png added
#13 Updated by Junhor Archondo over 1 year ago
- File db2.png added
#14 Updated by Junhor Archondo over 1 year ago
- Status changed from Nueva to Resuelta