Pour tout problème contactez-nous par mail : support@froggit.fr | La FAQ :grey_question: | Rejoignez-nous sur le Chat :speech_balloon:

Skip to content
Snippets Groups Projects

Resolve "external backup on S3"

Merged Arthur BOUDREAULT requested to merge 26-external-backup-on-s3 into main
2 files
+ 69
23
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -44,10 +44,10 @@ ynh_backup:
@@ -44,10 +44,10 @@ ynh_backup:
### Sauvegardes distantes avec BorgBackup
### Sauvegardes distantes avec BorgBackup
- Les sauvegardes avec [BorgBackup](https://borgbackup.readthedocs.io/en/stable/) et [Borgmatic](https://github.com/witten/borgmatic) : Grâce au rôle Ansible `m3nu.ansible_role_borgbackup` nous pouvons automatiser le processus d'installation et de configuration de BorgBackup sur un serveur YunoHost. Les sauvegardes Borg sont accessibles sur un dépôt Borg local ou distant. Plus d'info sur ce rôle [ici](https://github.com/borgbase/ansible-role-borgbackup)
- Les sauvegardes avec [BorgBackup](https://borgbackup.readthedocs.io/en/stable/) et [Borgmatic](https://github.com/witten/borgmatic) : Grâce au rôle Ansible `m3nu.ansible_role_borgbackup`, nous pouvons automatiser le processus d'installation et de configuration de BorgBackup sur un serveur YunoHost. Les sauvegardes Borg sont accessibles sur un dépôt Borg local ou distant. Plus d'info sur ce rôle [ici](https://github.com/borgbase/ansible-role-borgbackup)
```yml
```yml
ynh_borg_backup_scheduled: True
ynh_borg_backup_scheduled: True
borg_source_directories: "{{ ynh_backup.directory }}"
borg_source_directories: "{{ ynh_backup.directory }}"
borg_repository: "/data/backup/borg_repository"
borg_repository: "/data/backup/borg_repository"
borg_encryption_passphrase: "PLEASECHANGEME"
borg_encryption_passphrase: "PLEASECHANGEME"
@@ -77,20 +77,26 @@ N'hésitez pas à regarder les variables disponibles dans le [rôle](https://git
@@ -77,20 +77,26 @@ N'hésitez pas à regarder les variables disponibles dans le [rôle](https://git
### Sauvegardes distantes avec Restic
### Sauvegardes distantes avec Restic
- Les sauvegardes avec [Restic](https://restic.net/) : Grâce au rôle Ansible `do1jlr.restic`, nous pouvons automatiser le processus d'installation et de configuration de Restic sur un serveur YunoHost. Les sauvegardes Borg Restic accessibles sur un dépôt Restic en local ou à distance et compatible stockage objet S3. Plus d'info sur ce rôle [ici](https://github.com/roles-ansible/ansible_role_restic).
- Les sauvegardes avec [Restic](https://restic.net/) : Grâce au rôle Ansible `do1jlr.restic`, nous pouvons automatiser le processus d'installation et de configuration de Restic sur un serveur YunoHost. Les sauvegardes Restic peuvent être effectuées sur un dépôt Restic en local ou à distance (dépôt compatible stockage objet S3). Plus d'info sur ce rôle [ici](https://github.com/roles-ansible/ansible_role_restic).
⚠️ Attention, pour pouvoir utiliser le rôle Ansible `do1jlr.restic`, vous devez avoir les paquets suivants installé sur la machine qui exécute Ansible : `bzip2` (binaire disponible sur la plupart des systèmes Linux) et `jmespath` (paquet python, installable avec pip).
⚠️ Attention, pour pouvoir utiliser le rôle Ansible `do1jlr.restic`, vous devez avoir les [paquets suivants](https://github.com/roles-ansible/ansible_role_restic#requirements) installés sur la machine qui exécute Ansible :
 
 
- `bzip2` (binaire disponible sur la plupart des systèmes Linux).
 
- `jmespath` (paquet python, installable avec pip).
```yml
```yml
 
ynh_restic_backup_scheduled: True
 
restic_create_schedule: True
 
restic_keep_time: "0y2m0d0h"
restic_repos:
restic_repos:
s3_ynh_restic_repo:
s3_ynh_restic_repo:
location: "s3:s3.fr-par.scw.cloud/dummy_bucket_name"
location: "s3:s3.fr-par.scw.cloud/dummy_bucket_name"
password: "dummy_restic_repo_password"
password: "dummy_restic_repo_password"
aws_access_key: "dummy_access_key"
aws_access_key: "dummy_access_key"
aws_secret_access_key: "dummy_secret_access_key"
aws_secret_access_key: "dummy_secret_access_key"
aws_default_region: "fr-par"
aws_default_region: "fr-par"
init: true
init: True
restic_backups:
restic_backups:
YunoHost_remote:
YunoHost_remote:
@@ -101,16 +107,32 @@ restic_backups:
@@ -101,16 +107,32 @@ restic_backups:
- yunohost
- yunohost
- remote
- remote
keep_within: "{{ restic_keep_time }}"
keep_within: "{{ restic_keep_time }}"
scheduled: true
scheduled: True
schedule_hour: 1
schedule_hour: 1
schedule_minute: 0
schedule_minute: 0
```
```
N'hésitez pas à regarder les variables disponibles dans le [rôle](https://github.com/borgbase/ansible-role-borgbackup).
- `ynh_restic_backup_scheduled` : Active / désactive la fonctionnalité de sauvegarde avec Restic.
 
- `restic_keep_time` : Permet de régler finement la période de temps durant laquelle les snapshots doivent être conservés. la valeur par défaut est de 1 mois `0y1m0d0h`.
 
- `restic_repos`: Restic conserve les données dans des dépôts. Vous devez spécifier au moins un dépôt pour utiliser ce rôle. Un dépôt doit comporter les variables suivantes :
 
- `location` : **Obligatoire**, le chemin vers le dépôt. Ça peut être un chemin local (par exemple `/data/backup`) ou un chemin vers un bucket S3 (voir l'exemple ci-dessus).
 
- `password`: **Obligatoire**, mot de passe à utiliser pour le dépôt Restic.
 
- `init` : Décrit si le dépôt doit être initialisé ou pas. Utilisez `false` si vous utilisez un dépôt Restic déjà initialisé.
 
- ⚠️ Attention, s'il s'agit d'un dépôt stockage objet S3, vous devez fournir des variables supplémentaires pour que Restic puisse s'authentifier et accéder au fournisseur cloud (voir l'exemple ci-dessus).
 
- `restic_backups`: Un backup précise un répertoire ou un fichier à sauvegarder. Il comporte les variables suivantes :
 
- `name` : **Obligatoire**, ce nom de cette sauvegarde. Il doit être unique et est utilisé avec le __pruning__ et la planification.
 
- `repo` : **Obligatoire**, le nom du dépôt où sauvegarder les snapshots. Ce dépôt devra avoir été déclaré au préalable (voir plus haut pour les variables à renseigner).
 
- `src` : **Obligatoire**, le répertoire ou le fichier à sauvegarder.
 
- `tags` : **Optionnel**, liste de tags pour ajouter des informations.
 
- `keep-within` : Peut être utilisé en relation avec la variable `restic_keep_time` (dans ce cas, gardez la variable telle quelle) ou alors vous pouvez choisir une période de rétention pour chaque sauvegarde.
 
- `scheduled` : Utilisez `true` si vous souhaitez mettre en place une tâche cron pour le déclenchement d'une sauvegarde à intervalle régulier. En corrélation avec `restic_create_schedule: true` (les deux doivent être à `true` pour que la tâche soit créé).
 
- `schedule_[minute|hour|weekday|month]` : Permet de régler finement la planification du déclenchement de la tâche cron.
 
 
N'hésitez pas à regarder les variables disponibles dans le [rôle](https://github.com/roles-ansible/ansible_role_restic).
## Dépendances
## Dépendances
Le rôle `m3nu.ansible_role_borgbackup` sera installé sur la machine exécutant Ansible pour que les tâches liées à Borg fonctionnent. Un fichier `requirements.yml` est à la racine du rôle et va télécharger le rôle (par défaut vers `~/.ansible/roles`).
Le rôle `m3nu.ansible_role_borgbackup` et `do1jlr.restic` seront installés sur la machine exécutant Ansible pour que les tâches liées à Borg et Restic fonctionnent.
## Exemple de Playbook
## Exemple de Playbook
Loading