Tareas #6316

Respaldo de Asterisk

Added by Junhor Archondo about 1 year ago. Updated about 1 year ago.

Status:ResueltaStart date:08/07/2019
Priority:NormalDue date:
Assignee:-% Done:

90%

Category:-Spent time:-
Target version:-

asterisk.png (82.8 KB) Junhor Archondo, 08/07/2019 12:59 PM

asterisk1.png (166 KB) Junhor Archondo, 08/07/2019 12:59 PM

asterisk2.png (161 KB) Junhor Archondo, 08/07/2019 12:59 PM

asterisk3.png (167 KB) Junhor Archondo, 08/07/2019 12:59 PM

asterisk4.png (146 KB) Junhor Archondo, 08/07/2019 12:59 PM

asterisk5.png (164 KB) Junhor Archondo, 08/07/2019 12:59 PM

4496
4497
4498
4499
4500
4501

History

#1 Updated by Junhor Archondo about 1 year ago

Respaldo de Asterisk

Accedemos a nuestro servidor a respaldar (pathy), con el siguiente comando le instalamos rsync, que es una aplicación que permite copiar directorios y archivos.

$ yum install rsync

Creamos el usuario respaldo, utilizamos el siguiente comando:

$ adduser 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:

Configuración de Backuppc en la interfaz web:

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 (pathy.tlecom.cure.edu.uy) y user (respaldo).

Después de tener los hosts creados, vamos a editar su configuración. Lo primero que haremos acá es agregar los script creados en los host que tienen base de datos. Vamos a Backup Settings.

Vemos como tenemos seleccionadas dos opciones, estas son las que editamos, el resto está 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.

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, /var, /home) 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 ésta 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.

Referencias:

https://proyectos.interior.edu.uy/projects/tlecom/wiki/Implementaci%C3%B3n_Backuppc

#2 Updated by Junhor Archondo about 1 year ago

#3 Updated by Junhor Archondo about 1 year ago

  • Status changed from Nueva to Resuelta
  • % Done changed from 0 to 90

Also available in: Atom PDF