GitLab中的備份

2021-10-24 17:19:32 字數 1492 閱讀 3105

gitlab中提供的備份機制,不會備份配置檔案,所以需要手動備份配置目錄和相關檔案。備份指令之所以不備份配置檔案,是因為資料庫中包含一些加密的資訊。加密資訊的金鑰存放在備份目錄下,如果放在乙個地方,會違背資訊加密的安全目的。

一般來說,對於使用rpm包安裝的gitlab,所有的預設配置都在/etc/gitlab目錄下,其中最重要的是/etc/gitlab/gitlab.rb和/etc/gitlab/gitlab-secrets.json這兩個檔案。gitlab.rb是主配置檔案,包含外部url、倉庫目錄、備份目錄等重要配置。gitlab-secrets.json包含資料庫的加密金鑰、雙重認證的金鑰、gitlab ci的金鑰等加密資訊

備份/etc/gitlab/gitlab.rb

vim /etc/gitlab/gitlab.rb
編輯gitlab主配置檔案,增加如下配置資訊,儲存並退出。

gitlab_rails['backup_path'] = "/mnt/gitlab/backup"

gitlab_rails['backup_archive_permissions'] = 0644

gitlab_rails['backup_keep_time'] = 604800

gitlab-ctl reconfigure
執行備份指令

4. 檢視備份目錄下新的檔案

備份檔案採用tar包格式,檔案命名規則是epoch_yyyy_mm_dd_gitlab 版本號 _gitlab_backup.tar,可以看出此命名規則會帶上時間戳和gitlab的版本號資訊。

定時備份的實現是使用linux系統中的crontab任務進行的,具體實現如下:

通過命令建立crontab任務。每天凌晨2點執行一次備份任務(根據自己需求設定定時任務的執行時間和次數)。

# 執行如下命令

crontab -e

新建定時任務

# 新建定時任務

0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create cron=1

檢視定時任務列表

至此,已完成gitlab的備份工作。

gitlab還原備份

通過rpm安裝 wget rpm ivh gitlab ce 8.8.5 ce.1.el7.x86 64.rpm若要修改後端資料庫,配置使用mysql,則需執行 注意 此步需外網 https 並根據之後報錯缺少哪個版本的包就裝 yum install y mysql devel opt gitlab...

gitlab備份還原

斷電後gitlab報500錯誤 檢視日誌 tail f var log gitlab gitlab rails production.logactionview template error failed to parse loose object invalid header 沒轍,試著從備份資料...

遠端備份gitlab

使用gitlab進行備份 bin bash opt gitlab bin gitlab rake gitlab backup create cron 1 指令碼目錄 var opt gitlab backups 遠端備份指令碼 bin bash localbackdir var opt gitlab...