Restic - Stockage distant



Si vous ne connaissez pas Restic, allez donc faire un tour sur l'article dédié à son introduction.

Les services de stockage de type “S3”

Amazon S3 est un service de stockage proposé par la société éponyme qui a définit un “standard” d’API HTTP de stockage aujourd’hui dupliquée par un grand nombre d’autres services, dans un soucis de compatibilité. On parle alors de service “compatible S3”.

Restic a la possibilité de créer et d’utiliser des dépôts en utilisant ce type d’API, ce qui permet de facilement externaliser ses sauvegardes, à moindres frais vu le coût du stockage distribué aujourd’hui.

Il est bien sûr également possible de monter son propre service de stockage compatible S3, avec des solutions libres comme Minio.

Créer et utiliser un dépôt de type “S3” avec Restic

Pour cet exemple, j’utiliserai le service commercial Filebase. Ils proposent une offre gratuite temporaire très bien adaptée pour ce type de test.

Préparation de l’espace de stockage

  1. Créer et activer un compte sur Filebase

  2. Se connecter avec ses identifiants Filebase et accéder au tableau de bord sur la plateforme en ligne

  3. Naviguer sur l’onglet “Buckets”

    Onglet "Buckets" du tableau de bord Filebase

    La page suivante devrait s’afficher:

    Liste des buckets, pour le moment vide

  4. Créer le bucket restic-backup (le nom est ici donné uniquement à titre d’exemple)

    Le bucket "restic-backup" nouvellement créé

  5. Naviguer sur l’onglet “Access Keys”

    Onglet "Access Keys" du tableau de bord Filebase

  6. Sur la page qui s’affiche, noter les informations suivantes:

    • KEY
    • SECRET
    • API Endpoint

    Ces informations seront nécessaires à la configuration du dépôt de sauvegarde Restic.

Créer le dépôt Restic

  1. Sur la machine hébergeant les données à sauvegarder, après avoir installé Restic, initialiser le dépôt de sauvegarde:

    # Désactiver l'historique pour éviter la 
    # fuite des secrets suivants
    unset HISTFILE
    
    # Dans le cas de Filebase, cette variable
    # doit être "us-east-1"
    export AWS_DEFAULT_REGION="us-east-1"
    
    # Où <API_ENDPOINT> st la valeur 
    # correspondant notée à l'étape précédente
    # et <BUCKET> le nom du bucket créé
    # sur Filebase précédemment
    # Exemple: s3:https://s3.filebase.com/restic-backup
    export RESTIC_REPOSITORY="s3:<API_ENDPOINT>/<BUCKET>"
    
    # Où <KEY> est la valeur correspondant 
    # notée à l'étape précédente
    export AWS_ACCESS_KEY_ID="<KEY>"
    
    # Où <SECRET> est la valeur correspondant 
    # notée à l'étape précédente
    export AWS_SECRET_ACCESS_KEY="<SECRET>"
    
    # Où <PASSWORD> doit être conservé de 
    # manière pérenne, sous risque de perdre 
    # définitivement les données sauvegardées
    export RESTIC_PASSWORD="<PASSWORD>"
    

    Attention, l’ensemble de ces variables d’environnement devront être définies lors de l’exécution de vos futures commandes Restic avec ce dépôt.

  2. Lancer l’initialisation du dépôt

    root@7974eceeaf59:/# restic init
    created restic repository 332fbe42d2 at s3:https://s3.filebase.com/restic-backup
    
    Please note that knowledge of your password is required to access
    the repository. Losing your password means that your data is
    irrecoverably lost.
    

    Votre dépôt est initialisé ! Si vous accéder au tableau de bord sur Filebase, dans votre bucket vous devriez avoir quelque chose ressemblant à l’image suivante.

    Bucket avec dépôt Restic initialisé

Faire une sauvegarde

Pour effectuer la sauvegarde (snapshot) d’un répertoire, la méthode est identique qu’avec un dépôt local.

Imaginons que vous souhaitiez sauvegarder le répertoire /etc:

root@7974eceeaf59:/# restic backup /etc
repository 332fbe42 opened successfully, password is correct
created new cache in /root/.cache/restic
no parent snapshot found, will read all files

Files:         118 new,     0 changed,     0 unmodified
Dirs:           47 new,     0 changed,     0 unmodified
Added to the repo: 480.635 KiB

processed 118 files, 334.476 KiB in 0:08
snapshot 8cb5ca50 saved

Après l’exécution de votre première sauvegarde, vous pourrez voir que les données sur Filebase ont changées.

Bucket avec dépôt Restic après la première sauvegarde

Vous pouvez désormais externaliser vos sauvegardes en toute tranquilité et profiter des offres de stockage dans le cloud en ayant des sauvegardes chiffrées par défaut !