9 views
# Bot de Respaldos :::success **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.<span style="color: red;">NOMBRE_DEL_NODO</span>.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. <pre style="color: black; background-color: #f5f5f5; padding: 10px;"> ? Select app server: > <span style="color: red;">NOMBRE_DEL_NODO</span> ? Specify app domain > respaldos.<span style="color: red;">NOMBRE_DEL_NODO</span>.comun </pre> ##### ... 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: <pre style="color: black; background-color: #f5f5f5; padding: 10px;"> abra app config respaldos.<span style="color: red;">NOMBRE_DEL_NODO</span>.comun </pre> 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**). <pre style="color: black; background-color: #f5f5f5; padding: 10px;"> abra app secret insert respaldos.<span style="color: red;">NOMBRE_DEL_NODO</span>.comun restic_repo v1 rest:https://<span style="color: red;">USUARIA_RESPALDO</span>:<span style="color: red;">CONTRASEÑA_USUARIA_RESPALDO</span>@pazmental.respaldos.abyaya.la/<span style="color: red;">USUARIA_RESPALDO</span>/ </pre> 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. <pre style="color: black; background-color: #f5f5f5; padding: 10px;"> abra app secret generate -a respaldos.<span style="color: red;">NOMBRE_DEL_NODO</span>.comun </pre> :::danger **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. <pre style="color: black; background-color: #f5f5f5; padding: 10px;"> abra app deploy respaldos.<span style="color: red;">NOMBRE_DEL_NODO</span>.comun </pre> 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.** --- :::info ### Configuraciones posteriores ::: Para acceder al archivo de configuración de la instancia que nos proporciona el entorno abra, ejecutamos: <pre style="color: black; background-color: #f5f5f5; padding: 10px;"> abra app config respaldos.<span style="color: red;">NOMBRE_DEL_NODO</span>.abyaya.la </pre> 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. --- :::info 1. #### Respaldar de manera manual ::: Para ejecutar la acción de generar un respaldo de manera manual, solo basta: <pre style="color: black; background-color: #f5f5f5; padding: 10px;"> abra app run respaldos.<span style="color: red;">NOMBRE_DEL_NODO</span>.comun app -- backup create </pre> Es posible que recibamos un error así: <pre style="color: black; background-color: #f5f5f5; padding: 10px;"> FATA[0032] command [ssh -o ConnectTimeout=60 -l <span style="color: red;">USUARIA_DEL_NODO</span> -p 22 -- <span style="color: red;">NOMBRE_DEL_NODO</span>.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= </pre> 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: <pre style="color: black; background-color: #f5f5f5; padding: 10px;"> abra app cmd respaldos.<span style="color: red;">NOMBRE_DEL_NODO</span>.comun app backup snapshots </pre> ``` 2024-11-05T20:13:13.120525742Z bff133ce351b844814762919e85aaa468488f0c63a839e9b606f9cb024a0c34c 2024-11-05T20:14:11.225426156Z 531e7b1a9c936e2e2ea55b9bcffe49a761a524104a51e55754ec557ac4da289b 2024-11-07T03:30:21.528184565Z bf80eb50de0d0b85e5c4bec11d35aa6b180945af3395b85634ca24a665cef018 ``` --- :::info 2. #### Cambiando el horario de respaldo ::: Si quieres cambiar el horario de respaldo puedes abrir las configuraciones <pre style="color: black; background-color: #f5f5f5; padding: 10px;"> abra app config respaldos.<span style="color: red;">NOMBRE_DEL_NODO</span>.comun </pre> y cambiarlo aquí por el horario que necesites (ahí dice 3.30 am): <pre style="color: black; background-color: #f5f5f5; padding: 10px;"> CRON_SCHEDULE='<span style="color: red;">30 3</span> * * *' </pre> 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.