GitLab備份還原步驟

GitLab備份還原步驟

ZONGRU Li
Dec 20, 2022

設置參考官網(LINK):

首先要安裝上述rsync軟體:

sudo yum install rsync

當前上面有一個之前放的程式專案:

增加以下設定:

看到有一行註解:

打開註解:

改好後儲存!
#執行載入新的設定:
sudo gitlab-ctl reconfigure
#跑完依樣看一下gitlab狀態:
sudo gitlab-ctl status

看到:

接著就是嘗試跑以下兩個連結流程(LINK):

實際備份流程,首先有先介紹大概會備份哪些物件(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
如果是從別的地方搬回來,有改到所有者的話要改回給git

繼續看到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

到這邊應該就這樣了

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

2022/11/17 開源部分個人筆記給LINE "Java程式語言討論區"社群,希望能對社群的技術學習做一點點貢獻.(掩面....記得退訂閱!

No responses yet