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.
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
+-------------------------+----------------+-----------------------------------+
| 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.
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
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
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.
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.
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
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.