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
Commit 1a6e2f03 authored by Arthur BOUDREAULT's avatar Arthur BOUDREAULT
Browse files

docs: update docs for Restic feature

parent ab5ca96d
No related branches found
No related tags found
No related merge requests found
Pipeline #7506 passed with warnings
......@@ -14,7 +14,7 @@ Les variables par défaut sont disponibles dans `default/main.yml` cependant il
Nous avons intégré deux systèmes de sauvegardes différents à ce rôle YunoHost :
- sauvegardes natives YunoHost en local
- sauvegardes à distance avec un [depot BorgBackup](https://borgbackup.readthedocs.io/en/stable/)
- sauvegardes à distance avec un [dépôt BorgBackup](https://borgbackup.readthedocs.io/en/stable/)
### Sauvegardes natives YunoHost locales
......@@ -44,7 +44,7 @@ ynh_backup:
### 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
ynh_borg_backup_scheduled: True
......@@ -78,19 +78,61 @@ N'hésitez pas à regarder les variables disponibles dans le [rôle](https://git
### 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 sont accessibles 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 installés sur la machine qui exécute Ansible :
```yml
- `bzip2` (binaire disponible sur la plupart des systèmes Linux).
- `jmespath` (paquet python, installable avec pip).
```yml
ynh_restic_backup_scheduled: True
restic_keep_time: 0y2m0d0h
restic_repos:
s3_ynh_restic_repo:
location: "s3:s3.fr-par.scw.cloud/dummy_bucket_name"
password: "*7CGkFzRk87k5#qJZmRvJsmy*F!hsnEm"
aws_access_key: "dummy_access_key"
aws_secret_access_key: "dummy_secret_access_key"
aws_default_region: "fr-par"
init: true
restic_backups:
YunoHost_remote:
name: "remote_ynh_restic"
repo: "s3_ynh_restic_repo"
src: "/data/yunohost"
tags:
- yunohost
- remote
keep-within: "{{ restic_keep_time }}"
scheduled: true
schedule_hour: 1
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.
- `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.
- `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
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ées sur la machine exécutant Ansible pour que les tâches liées à Borg et Restic fonctionnent.
## Exemple de Playbook
......
......@@ -80,14 +80,53 @@ Feel free to look at the variables available in the [role](https://github.com/bo
- Backups with [Restic](https://restic.net/): Thanks to the Ansible role `do1jlr.restic` we can automate the installation and configuration process of Restic on a YunoHost server. Restic backups are accessible on a local or a remote Restic repository and compatible with S3 object storage. More info about this role [here](https://github.com/roles-ansible/ansible_role_restic).
```yml
ynh_restic_backup_scheduled: True
restic_keep_time: 0y2m0d0h
restic_repos:
s3_ynh_restic_repo:
location: "s3:s3.fr-par.scw.cloud/dummy_bucket_name"
password: "*7CGkFzRk87k5#qJZmRvJsmy*F!hsnEm"
aws_access_key: "dummy_access_key"
aws_secret_access_key: "dummy_secret_access_key"
aws_default_region: "fr-par"
init: true
restic_backups:
YunoHost_remote:
name: "remote_ynh_restic"
repo: "s3_ynh_restic_repo"
src: "/data/yunohost"
tags:
- yunohost
- remote
keep-within: "{{ restic_keep_time }}"
scheduled: true
schedule_hour: 1
schedule_minute: 0
```
- `ynh_restic_backup_scheduled`: Enable / disable the backup feature with Restic.
- `restic_keep_time`: Allows to fine tune the time period during which snapshots should be kept.
- `restic_repos`: Restic keeps data in repositories. You must specify at least one repository to use this role. A repository must have the following variables:
- `location`: **Mandatory**, the path to the repository. This can be a local path (e.g. `/data/backup`) or a path to an S3 bucket (see example above).
- `password`: **Mandatory**, password to use for the Restic repository.
- `init`: Describes whether the repository should be initialized or not. Use `false` if you are using an already initialized Restic repository.
- ⚠️ Beware, if this is an S3 object storage repository, you must provide additional variables for Restic to authenticate and access the cloud provider (see example above).
- `restic_backups`: A backup specifies a directory or file to be backed up. It has the following variables:
- `name` : **Mandatory**, this name of this backup. It must be unique and is used with the __pruning__ and scheduling.
- `repo`: **Mandatory**, the name of the repository where to save the snapshots. This repository should have been declared beforehand (see above for variables to fill in).
- `src` : **Mandatory**, the directory or file to be backed up.
- `tags`: **Optional**, list of tags to add information.
- `keep-within`: Can be used in connection with the `restic_keep_time` variable (in this case, keep this variable as it is) or you can choose a retention period for each backup.
- `scheduled`: Use `true` if you want to set up a cron job to trigger a backup at regular intervals.
- `schedule_[minute|hour|weekday|month]`: Allows you to fine-tune the timing of the cron job.
Feel free to look at the variables available in the [role](https://github.com/roles-ansible/ansible_role_restic).
## Dependencies
The `m3nu.ansible_role_borgbackup` role will be installed on the machine running Ansible for Borg-related tasks to work. A `requirements.yml` file is in the root of the role and will download the role (by default to `~/.ansible/roles`).
The `m3nu.ansible_role_borgbackup` and `do1jlr.restic` roles will be installed on the machine running Ansible for Borg and Restic related tasks to work.
## Example Playbook
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment