Comment faire pour que GitLab supprime les anciennes sauvegardes?

12

J'utilise la tâche de râteau pour créer des sauvegardes pour GitLab 6.8.2.

gitlab-rake gitlab:backup:create

Dans /etc/gitlab/gitlab.rbj'ai ajouté la ligne suivante:

gitlab_rails['backup_keep_time'] = 60

Ceci est censé élaguer les sauvegardes de plus de 60 secondes. Je m'attendais à ce qu'une deuxième exécution de gitlab:backup:createsupprime la première sauvegarde si 60 secondes se sont écoulées. Bien que la dernière ligne de la sortie soit

Suppression d'anciennes sauvegardes ... saut

Comment configurer GitLab pour supprimer réellement les anciennes sauvegardes?

Jan Deinhard
la source
pouvez-vous fournir un ls -lsdans le répertoire avec les sauvegardes et également la sortie de la datecommande
Mike
Vous avez peut-être oublié gitlab-ctl reconfigure && gitlab-ctl restartvotre installation?
bossi

Réponses:

15

L'option que vous voulez est gitlab_rails['backup_keep_time']. j'ai dû

gitlab-ctl reconfigure

après l'avoir réglé pour qu'il ait un effet. Notez que cela n'affectera que les sauvegardes locales, pas Amazon-AWS S3 si vous l'utilisez.

Il y avait un problème avec leur ignorance , mais je ne sais pas quelles versions cela affecte. La version 6 est assez ancienne. Si vous êtes sur l'omnibus, cela pourrait valoir la peine d'être amélioré.

Tad M.
la source
1
+1 pour avoir mentionné quelle était (probablement) la solution ( gitlab-ctl reconfigure)
bossi
1
Il convient de mentionner qu'après la mise à jour gitlab.rbet l'exécution de la gitlab-ctl reconfigurecréation d'une nouvelle sauvegarde ou lorsque la prochaine sauvegarde est exécutée, les sauvegardes expirées seront supprimées.
Mark Carpenter Jr
6

Vous envisagez peut-être de faire pivoter les fichiers périmés de la télécommande ou du backup_upload_connectiondossier. Gitlab n'est pas en mesure de supprimer les sauvegardes périmées de cet emplacement ou de tout autre emplacement distant . Le backup_keep_timeest uniquement pour son interne backup_pathqui est par défaut /var/opt/gitlab/backups.

Je prévois d'exécuter un travail cron séparément qui supprime tous les fichiers, sauf 10, les plus récents de mon dossier de sauvegarde distant monté sur NFS.

ls -dt */ | tail -n +11 | xargs rm -rf

Voir cette demande de fusion: https://gitlab.com/gitlab-org/omnibus-gitlab/issues/1453

Et ce diff: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5567/diffs

Note that the `backup_keep_time` configuration option only manages local
files. GitLab does not automatically prune old files stored in a third-party
object storage (e.g. AWS S3) because the user may not have permission to list
and delete files. We recommend that you configure the appropriate retention
policy for your object storage. For example, you can configure [the S3 backup
policy here as described here](http://stackoverflow.com/questions/37553070/gitlab-omnibus-delete-backup-from-amazon-s3).
instantchow
la source