Bagaimana cara membuat GitLab menghapus cadangan lama?

12

Saya menggunakan tugas menyapu untuk membuat cadangan untuk GitLab 6.8.2.

gitlab-rake gitlab:backup:create

Di /etc/gitlab/gitlab.rbsaya menambahkan baris berikut:

gitlab_rails['backup_keep_time'] = 60

Ini seharusnya memangkas cadangan yang lebih lama dari 60 detik. Harapan saya adalah bahwa menjalankan kedua gitlab:backup:createakan menghapus cadangan pertama jika 60 detik telah berlalu. Padahal baris terakhir dalam output adalah

Menghapus cadangan lama ... dilewati

Bagaimana cara mengkonfigurasi GitLab untuk benar-benar menghapus cadangan lama?

Jan Deinhard
sumber
dapatkah Anda memberikan ls -lsdir dengan cadangan dan juga output dari dateperintah
Mike
Anda mungkin lupa gitlab-ctl reconfigure && gitlab-ctl restartinstalasi Anda?
bossi

Jawaban:

14

Opsi yang Anda inginkan adalah gitlab_rails['backup_keep_time']. saya harus

gitlab-ctl reconfigure

setelah mengatur agar efeknya. Perhatikan bahwa ini hanya akan memengaruhi cadangan lokal, bukan Amazon-AWS S3 jika Anda menggunakannya.

Ada masalah dengan mereka yang diabaikan , tapi saya tidak yakin versi apa yang memengaruhinya. Versi 6 sudah cukup tua. Jika Anda berada di omnibus, mungkin layak untuk ditingkatkan.

Tad M.
sumber
1
+1 untuk menyebutkan apa (kemungkinan besar) solusinya ( gitlab-ctl reconfigure)
bossi
1
Layak disebutkan bahwa setelah memperbarui gitlab.rbdan menjalankan gitlab-ctl reconfiguremembuat cadangan baru atau ketika cadangan berikutnya dijalankan, cadangan yang kedaluwarsa akan dihapus.
Mark Carpenter Jr
6

Mungkin Anda sedang mencari cara memutar file basi di remote atau backup_upload_connectionfolder. Gitlab tidak dapat menghapus cadangan basi dari ini atau lokasi terpencil lainnya . The backup_keep_timehanya untuk internalnya backup_pathyang gagal untuk /var/opt/gitlab/backups.

Saya berencana untuk menjalankan tugas cron secara terpisah yang menghapus semua kecuali 10 file terbaru di folder backup saya yang terpasang di NFS.

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

Lihat permintaan penggabungan ini: https://gitlab.com/gitlab-org/omnibus-gitlab/issues/1453

Dan perbedaan ini: 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
sumber