Sauvegarder et restaurer Jenkins avec ThinBackup, restic et rclone
Le plugin Jenkins 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
et rclone
-
Installer et configurer le plugin ThinBackup (via "Administrer Jenkins" -> "Gestion des plugins" puis une fois installé, dans "Administrer Jenkins" -> "ThinBackup") sur votre instance Jenkins. Il est préinstallé sur l'image Jenkins générée pour Cadoles.
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
. -
Installer
restic
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. -
Installer
rclone
. Soit par le gestionnaire de paquet si il est disponible, soit directement en téléchargeant les binaires sur le site officiel. -
Suivre la documentation officielle de
restic
afin de créer un nouveau dépôt de sauvegarde. Viarclone
, 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). -
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".
Restaurer une sauvegarde avec ThinBackup
-
Copier le contenu du répertoire de backups (exemple
/var/jenkins/backups
) de l'ancienne instance et le copier au même endroit sur la nouvelle instance (si vous avez configuré de manière identique ThinBackup sur la nouvelle instance). -
Redémarrer Jenkins
/etc/init.d/jenkins restart
-
Dans l'interface de Jenkins, ensuite, suivre "Administrer Jenkins" -> "ThinBackup -> Restore" et sélectionner la sauvegarde à restaurer. Vous pouvez suivre l'état d'avancement de la restauration avec:
tail -f /var/log/jenkins/jenkins.log
-
Redémarrer Jenkins
/etc/init.d/jenkins restart
Jenkins devrait être restauré (configuration + jobs) suite au redémarrage. Attention, les comptes utilisateurs seront également restauré (par exemple si vous aviez configuré une authentification LDAP). Il se peut donc que le compte administrateur par défaut n'existe plus après redémarrage.