實際備份流程,首先有先介紹大概會備份哪些物件(LINK):
首先可以到網頁看到自己的gitlab版本(http://domain/help):
然後照著備份文件做:
#整理指令如下,執行備份:
sudo gitlab-backup create
大概一分鐘左右跳出警告(但不知道為何是用紅色的嚇到我)
其實是在說後面文件也有提到的其他設定檔的備份要自己來:
如上面執行畫面結尾會看到一個日期檔案
#這個備份出來的檔案會在預設目錄(這個設定在上面打開註解的前一行,不過就還是沿用預設目錄就好):
sudo ls /var/opt/gitlab/backups
另外實際上目前研究以來有改動到的可能必要備份檔案整理如下
#假裝備份到某個目錄備存:
sudo cp /etc/gitlab/gitlab.rb /備份目錄/
sudo cp /etc/gitlab/gitlab-secrets.json /備份目錄/
sudo cp -R /etc/gitlab/trusted-certs /備份目錄/
sudo cp -R /etc/gitlab/ssl /備份目錄/
sudo cp -R /etc/pki/ca-trust/source/anchors /備份目錄/
以上備份流程就這樣
接著還原的流程(LINK):
在這邊我先模擬移除掉上面的Code:
例如下面:
然後開始跑還原流程
把剛剛/var/opt/gitlab/backups這個預設備份目錄下得到的tar檔擺在這目錄
把該tar檔所有者改為"git"
#更改tar檔的所有者為git:
sudo chown git:git /var/opt/gitlab/backups/1671525582_2022_12_20_15.4.5_gitlab_backup.tar
繼續看到doc:
#暫停DB相關連線服務:
sudo gitlab-ctl stop puma
sudo gitlab-ctl stop sidekiq
#確認只關掉上述服務:
sudo gitlab-ctl status
#還原到備份檔案的前墜的時間(檔名是1671525582_2022_12_20_15.4.5_gitlab_backup.tar)指令:
sudo gitlab-backup restore BACKUP=1671525582_2022_12_20_15.4.5
接著會再提示會異動到authorized_keys檔案
最後:
我這時候有看一下目前設定檔還是舊的
接著繼續參考doc:
#重新載入設定檔並確認gitlab:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
sudo gitlab-rake gitlab:check SANITIZE=true
reconfigure確定跑完:
其實這時候可以回來看剛剛移除的README檔案就已經復原了:
#文件上的其他檢測,如/etc/gitlab/gitlab-secrets.json的DB解密是否復原:
sudo gitlab-rake gitlab:doctor:secrets
很長
#其他的檔案驗證:
sudo gitlab-rake gitlab:artifacts:check
sudo gitlab-rake gitlab:lfs:check
sudo gitlab-rake gitlab:uploads:check
到這邊應該就這樣了