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
-
Créer et activer un compte sur Filebase
-
Se connecter avec ses identifiants Filebase et accéder au tableau de bord sur la plateforme en ligne
-
Naviguer sur l’onglet “Buckets”
La page suivante devrait s’afficher:
-
Créer le bucket
restic-backup
(le nom est ici donné uniquement à titre d’exemple) -
Naviguer sur l’onglet “Access Keys”
-
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
-
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.
-
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.
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.
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 !