Try   HackMD

Bot de Respaldos

En esta sección abordaremos como desplegar un Bot de Respaldos en nuestra Huerta Digital que se encargará de realizar el backup de todas las aplicaciones que tengamos instaladas en ese servidor y de enviarlas a otro servidor remoto para que las almacene de manera encriptada.


Agregar aplicación al nodo a respaldar

Nuestro primer paso será agregar la aplicación de respaldos al nodo que queremos respaldar, con el dominio respaldos.NOMBRE_DEL_NODO.comun

abra app new backup-bot-two

Nos va a realizar unas preguntas (en inglés), las líneas que empiezan con ? son la pregunta y con > nuestra respuesta.

? Select app server:
> NOMBRE_DEL_NODO
? Specify app domain
> respaldos.NOMBRE_DEL_NODO.comun
al finalizar el proceso veremos algo así:
+-------------------------+----------------+-----------------------------------+
|    SERVER               |     RECIPE     |            DOMAIN                 |
+-------------------------+----------------+-----------------------------------+
| NOMBRE_DEL_NODO.comun   | backup-bot-two | respaldos.NOMBRE_DEL_NODO.comun   |
+-------------------------+----------------+-----------------------------------+

You can configure this app by running the following:

    abra app config respaldos.NOMBRE_DEL_NODO.comun

You can deploy this app by running the following:

    abra app deploy respaldos.NOMBRE_DEL_NODO.comun

Ahora haremos algunos cambios a la configuración de esta aplicación, ejecutamos el comando:

abra app config respaldos.NOMBRE_DEL_NODO.comun

Y borramos el # en las dos últimas líneas del documento:

SECRET_RESTIC_REPO_VERSION=V1
COMPOSE_FILE="$COMPOSE_FILE:compose.secret.yml"

Y en el mismo documento agregamos la configuración para las notificaciones (opcional):

PUSH_URL_START=https://ntfy.sutty.nl/tpYMSjSsRW51djhw/publish?message=Respaldando
PUSH_URL_SUCCESS=https://ntfy.sutty.nl/tpYMSjSsRW51djhw/publish?message=Respaldado
PUSH_URL_FAIL=https://ntfy.sutty.nl/tpYMSjSsRW51djhw/publish?message=Fallo&tags=warning,skull

Guardamos cambios con con control + O y cerramos el documento con control + X.


Activar Credenciales en Servidor Remoto

El siguiente paso es darnos de alta en el servidor que recibirá los respaldos. Para ello necesitaremos que el servidor de respaldos de Red Abya Yala nos haya enviado una usuaria y una contraseña (Solicitarla en el chat interno).

abra app secret insert respaldos.NOMBRE_DEL_NODO.comun restic_repo v1 rest:https://USUARIA_RESPALDO:CONTRASEÑA_USUARIA_RESPALDO@pazmental.respaldos.abyaya.la/USUARIA_RESPALDO/

Si todo es exitoso el mensaje debería verse así:


INFO[0001] respaldos_nombre_del_nodo_comun_restic_repo_v1 successfully stored on server 


Generar contraseña para los respaldos cifrados

Una vez establecida la comunicación con el servidor que almacenará los respaldos, debemos crear la constraseña que nos permitirá abrir nuestros respaldos.

abra app secret generate -a respaldos.NOMBRE_DEL_NODO.comun

IMPORTANTE: Tomar nota de esta contraseña y guardarla en un lugar que consideremos seguro. Esta es la contraseña de cifrado de los respaldos, si la perdemos no hay forma de recuperar los archivos. Si alguien toma acceso a esta contraseña, tiene acceso también a los archivos.

se verá algo así

+-----------------+------------------------------------------------+
|      NAME       |                     VALUE                      |
+-----------------+------------------------------------------------+
| restic_password | swimsuit-stroller-otter-refuse-empty-threefold |
+-----------------+------------------------------------------------+
WARN[0002] generated secrets are not shown again, please take note of them NOW 


Desplegar aplicación de respaldo

Guardamos esa informacion sensible y desplegamos la aplicación de respaldos.

abra app deploy respaldos.NOMBRE_DEL_NODO.comun

Si todo resulta bien, deberíamos ver lo siguiente:

+-----------------------+----------------+--------------------+--------+------------------+
|     SERVER            |     RECIPE     |       CONFIG       | DOMAIN |     VERSION      |
+-----------------------+----------------+--------------------+--------+------------------+
| NOMBRE_DEL_NODO.comun | backup-bot-two | compose.yml        |        | 2.3.0+2.3.0-beta |
|                       |                | compose.secret.yml |        |                  |
+-----------------------+----------------+--------------------+--------+------------------+
? continue with deployment? Yes
WARN[0014] skipping domain checks as no DOMAIN=... configured for app 
INFO[0015] Updating service respaldos_NOMBRE_DEL_NODO_comun_app (id: rkhps08hfnkozjfoiuje31b9t) 
INFO[0019] Waiting for respaldos.NOMBRE_DEL_NODO.comun to deploy... please hold 🤚 
a
INFO[0048] Successfully deployed respaldos.NOMBRE_DEL_NODO.comun 

Con estos pasos ya tenemos una aplicación llamada Backup-Bot-Two que de manera automática hará respaldo de todo lo que esté en esa huerta digital. Esto lo hará automáticamente todos los días a las 3.30 am.


Configuraciones posteriores

Para acceder al archivo de configuración de la instancia que nos proporciona el entorno abra, ejecutamos:

abra app config respaldos.NOMBRE_DEL_NODO.abyaya.la

Si bien la receta de hace casi todo por nosotras, aún será necesario hacer pequeños ajustes de configuración por aquí y allá para que nuestra plataforma funcione de la mejor manera. Los pasos siguientes son opcionales pero te recomendamos seguirlos.


  1. Respaldar de manera manual

Para ejecutar la acción de generar un respaldo de manera manual, solo basta:

abra app run respaldos.NOMBRE_DEL_NODO.comun app -- backup create

Es posible que recibamos un error así:

FATA[0032] command [ssh -o ConnectTimeout=60 -l USUARIA_DEL_NODO -p 22 -- NOMBRE_DEL_NODO.comun docker system dial-stdio] has exited with exit status 255, please make sure the URL is valid, and Docker 18.09 or later is installed on the remote host: stderr= 

Esto puede ser porque el respaldo tardó mucho en hacerse, pero podemos chequearlo con el siguiente comando.

Para ver la lista de respaldos realizados hasta el momento:

abra app cmd respaldos.NOMBRE_DEL_NODO.comun app backup snapshots
2024-11-05T20:13:13.120525742Z bff133ce351b844814762919e85aaa468488f0c63a839e9b606f9cb024a0c34c
2024-11-05T20:14:11.225426156Z 531e7b1a9c936e2e2ea55b9bcffe49a761a524104a51e55754ec557ac4da289b
2024-11-07T03:30:21.528184565Z bf80eb50de0d0b85e5c4bec11d35aa6b180945af3395b85634ca24a665cef018

  1. Cambiando el horario de respaldo

Si quieres cambiar el horario de respaldo puedes abrir las configuraciones

abra app config respaldos.NOMBRE_DEL_NODO.comun

y cambiarlo aquí por el horario que necesites (ahí dice 3.30 am):

CRON_SCHEDULE='30 3 * * *'

Guardamos cambios con con control + O y cerramos el documento con control + X.


Con todas estas precauciones esperamos que mágicamente puedan dormir plácidamente por las noches.