wpetit 2020-06-18 10:40:09 +02:00
parent bb4818688b
commit 74148a92de
1 changed files with 27 additions and 0 deletions

@ -0,0 +1,27 @@
# Sauvegarder Jenkins avec ThinBackup, restic et rclone
Le plugin Jenkins [ThinBackup](https://plugins.jenkins.io/thinBackup/) permet d'effectuer des sauvegardes automatiques d'une instance Jenkins à intervalles réguliers. Ces sauvegardes peuvent être facilement exportées via les outils [`restic`](https://restic.net/) et [`rclone`](https://rclone.org/)
1. Installer et configurer le plugin [ThinBackup](https://plugins.jenkins.io/thinBackup/) (via "Administrer Jenkins" -> "Gestion des plugins" puis une fois installé, dans "Administrer Jenkins" -> "ThinBackup") sur votre instance Jenkins.
Dans les exemples suivants, nous partirons du principe que vous avez configurés des sauvegardes journalières complètes dans le répertoire `/var/jenkins/backups`.
2. Installer [`restic`](https://restic.net/) sur la machine. Soit par le gestionnaire de paquet si il est disponible, soit directement en téléchargeant les binaires sur le site officiel.
3. Installer [`rclone`](https://rclone.org/). Soit par le gestionnaire de paquet si il est disponible, soit directement en téléchargeant les binaires sur le site officiel.
4. Suivre la [documentation officielle](https://restic.readthedocs.io/en/stable/030_preparing_a_new_repo.html) de `restic` afin de créer un nouveau dépôt de sauvegarde. Via [`rclone`](https://restic.readthedocs.io/en/stable/030_preparing_a_new_repo.html#other-services-via-rclone), il est possible d'exporter le dépôt sur un espace de stockage distant, par exemple WebDAV (Owncloud propose par exemple un connecteur de ce type).
5. Vous pouvez utiliser le script suivant comme exemple pour définir une tâche journalière de sauvegarde:
```
#!/bin/sh
export RESTIC_PASSWORD='<password>'
# Sauvegarde du répertoire /var/jenkins/backups dans le dépôt de sauvegarde <repo>
restic -r rclone:<repo>:backup/jenkins backup /var/jenkins/backups
# Rotation des sauvegardes, on conserve les 7 dernières sauvegardes
restic -r rclone:<repo>:backup/jenkins forget --keep-last 7 --prune
```
Sur Alpine, ce script peut par exemple être place dans le répertoire `/etc/periodic/daily` pour être exécuté automatiquement toutes les nuits par le service "cron".