Info
Content

Backup & Restore

You can only restore a backup to exactly the same version and type (CE/EE) of GitLab on which it was created

Версию и тип можно засунуть в имя файла бэкапа

Бэкапы складываются в backup_path

root@gitlab-new:/etc/gitlab# cat gitlab.rb | grep backup_path
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"

Выглядят они вот так

root@gitlab-new:/etc/gitlab# ls /var/opt/gitlab/backups
1636411695_2021_11_08_13.2.4_gitlab_backup.tar	  1636413943_2021_11_08_14.0.12_gitlab_backup.tar  1636416295_2021_11_09_14.4.2_gitlab_backup.tar  1636419165_2021_11_09_14.1.7_gitlab_backup.tar
1636413054_2021_11_08_13.12.15_gitlab_backup.tar  1636414740_2021_11_08_14.1.7_gitlab_backup.tar   1636416920_2021_11_09_14.2.6_gitlab_backup.tar
root@gitlab-new:/etc/gitlab#

Команда - sudo gitlab-backup create запустит создание бэкапа

Screenshot_2021_02_02-12_49_03-2022-03-29-at-snthsnthstnh.png

Получается вот такой архив

root@gitlab-new:/var/opt/gitlab/backups# tar --list -f 1648556739_2022_03_29_14.4.2_gitlab_backup.tar | grep -v 'repositories/'
db/
db/database.sql.gz
uploads.tar.gz
builds.tar.gz
artifacts.tar.gz
pages.tar.gz
lfs.tar.gz
backup_information.yml

Но в нем нет конфигов

/etc/gitlab/gitlab-secrets.json
/etc/gitlab/gitlab.rb 

Их нужно забэкапить отдельно (в них есть чувствительная инфа, надо быть аккуратным)

Существуют разные backup options
Например можно бэкапить через временные файлы, а можно гнать данные напрямую в tar (итд, опций полно)

Гитлаб может отправлять бэкап в удаленное хранилище (например в s3)
В /etc/gitlab/gitlab.rb нужно прописать:

gitlab_rails['backup_upload_connection'] = {
  'provider' => 'AWS',
  'region' => 'ru-central1',
  'aws_access_key_id' => 'YCAJExaoeuaoeuTM_m8BrB',
  'aws_secret_access_key' => 'YCMpK7kaoeuaoeu3_Hxhpr9XwH7__mmG',
  'endpoint'              => 'https://storage.yandexcloud.net',
  'path_style' => true
}
gitlab_rails['backup_upload_remote_directory'] = 'zeen-backup-gitlab'

И вот такую хрень в крон

root@gitlab-new:/etc/gitlab# crontab -l | egrep -v '^#'
0 2 * * * /opt/gitlab/bin/gitlab-backup create CRON=1
No Comments
Back to top