Crear backups con restic en baldes gratuitos de 25 Gigas de IBM Cloud

  • 24 Feb 2020
  • Linux, restic, IBM Cloud, backup

Así es, IBM da a disposición de todo el mundo, o de los que lleguen primero, de 25 Gigas de espacio en la nube GRATIS. Sin necesidad de agregar una tarjeta de crédito a la cuenta. Basta una cuenta de correo. No solo son 25G, que parecen enormes al lado de lo que ofrecen los otros Grandes. Como Google con sus 15G o Microsoft con sus ya bastante escasos 5G, si no que además, el storage de IBM es compatible con S3, por lo que muchas de las herramientas S3 para backups, como por ejemplo restic, deberían funcionar bastante bien.

Crear cuenta y obtener los 25GB gratis

Ir a la página de registro del cloud de IBM, completar el formulario y confirmar la cuenta haciendo click en el botón que llegará al correo.

IBM Cloud - Formulario de registro

Una vez que tenemos nuestra cuenta, entramos al cloud y creamos un balde (o bucket) haciendo click en el botón Custom Bucket

IBM Cloud - Custom Bucket

En la pantalla que sigue, eligiremos un nombre para nuestro balde, seleccionamos la ubicación más cercana a la nuestra, seleccionamos el tipo de balde (en este caso, Standard) y hacemos click en Crete bucket. Listo, ya tenemos un balde que podemos llegar con lo que sea.

Antes de ir de lleno con restic, vamos a crear las credenciales. En el menu de la izquierda, vamos a encontrar el punto Service credentials. Hacemos click en el botón New credential, habilitamos HMAC credential y hacemos click en Add.

IBM Cloud - Add credential

Una vez hecho esto, hacemos click en view credentials y tomamos nota de los valores de access_key_idsecret_access_key

Hacer un backup y meterlo en el bucket con restic

Si todavía no lo hicimos, instalar restic.

En Fedora se hace ejecutando:

dnf install restic -y

Para instalarlo en otras distribuciones/sistemas: Documentación

Para que restic pueda comunicar con el balde del cloud de IBM que hemos apenas creado necesitaremos crear un par de variables:

export AWS_ACCESS_KEY_ID=<MY_ACCESS_KEY>
export AWS_SECRET_ACCESS_KEY=<MY_SECRET_ACCESS_KEY>

Antes de iniciar el repositorio, necesitamos crear una contraseña segura. Podemos ayudarnos del siguiente comando:

openssl rand -base64 24

Conservar esta contraseña es muy importante porque de lo contrario no será posible restaurar nada. No sería mal tenerla al reparo con KeePass.

Ahora sí, podemos crear el repositorio restic iniciándolo simplemente ejecutando el siguiente comando:

restic -r s3:PUBLIC_ENDPOINT_LOCATION/NOMBRE_BUCKET init

Crear backups

Para restic los backups se llaman snapshots. Ejecutar el siguiente comando para crear un backup del direcotio files_to_backup: (ingresar la password generada anteriormente cuando sea pedida)

restic -r s3:PUBLIC_ENDPOINT_LOCATION/NOMBRE_BUCKET backup files_to_backup

Cada vez que se realice un backup con restic será necesario ingresar la contraseña. Esto no está tan bueno si queremos realizar backups automáticos (que deberían ser el 99,99% no?). Por suerte, la password puede enviarse a través del parámetro --password-file o creando la variable de entorno RESTIC_PASSWORD y así poder hacer backups desatendidos con restic.

export RESTIC_PASSWORD="super_password_secrta_de_restic"

Restaurar desde una copia de backup

Para traer un backup (o snapshot) de la nube o un solo archivo de un snapshot lo primero que necesitamos saber es el ID del snapshot:

restic -r s3:PUBLIC_ENDPOINT_LOCATION/NOMBRE_BUCKET snapshots

Una vez que tenemos el ID del snapshot en cuestión, podremos recuperar el backup entero descargándolo dentro la carpeta restoreDirectory con el siguiente comando:

restic -r s3:PUBLIC_ENDPOINT_LOCATION/NOMBRE_BUCKET restore snapshotID --target restoreDirectory

Si en cambio, nos sirve un solo archivo (por ejempo: solo_este_archivo) del backup, podremos recuperarlo con el siguiente comando:

restic -r s3:PUBLIC_ENDPOINT_LOCATION/NOMBRE_BUCKET restore snapshotID --target restoreDirectory --include solo_este_archivo

Enlaces externos