2019年4月14日 星期日

Gitlab 備份與還原

目前公司還沒有考慮升級硬體,想想還是要做多點備份以防萬一

參考 : https://docs.gitlab.com/ee/raketasks/backup_restore.html


1. Gitlab 備份


1.1 備份 Configuration Files (Optional)


備份 /etc/gitlab 文件夾下的內容,包含 two-factor authentication、CI/CD 中的安全變量等。

若是使用 Docker 安裝,那預設路徑為 /srv/gitlab/config

sudo tar -czf "gitlab-config-$(date +%s).tgz" /srv/gitlab/config

1.2 備份 Data


打開 /etc/gitlab/gitlab.rb

sudo docker exec -it gitlab vi /etc/gitlab/gitlab.rb

進行以下的修改

# 取消下面兩行的註解
gitlab_rails['manage_backup_path'] = true  # 是否備份
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"  #備份目錄

# 修改備份過期時間
gitlab_rails['backup_keep_time'] = 604800

重新加載配置文件

sudo docker exec -it gitlab gitlab-ctl reconfigure

手動執行備份

sudo docker exec -it gitlab gitlab-rake gitlab:backup:create

會在 gitlab_rails['backup_path'] 中看到備份檔案 1555227555_2019_04_14_11.9.8_gitlab_backup.tar,檔名包含的訊息如下:

  • Timestamp
  • 年、月、日
  • Gitlab 版本號碼


2. Gitlab 還原


需要符合下列要求:

  • 執行備份與恢復的 Gitlab 版本必須要一致
  • 恢復前至少執行過一次 (gitlab-ctl reconfigure)
  • Gitlab 需於運作狀態中 (gitlab-ctl start)


2.1 還原 Configuration Files (Optional)


停止 Gitlab

sudo docker stop gitlab

還原 /etc/gitlab,若是使用 Docker 安裝,則會還原 /srv/gitlab/config。若是該路徑下已有檔案存在,記得移走或是備份後刪除。

sudo tar -xzf "gitlab-config-1555227555.tgz" -C /

重啟 Gitlab

sudo docker start gitlab

2.2 還原 Data


確認要還原的備份檔案在 gitlab_rails['backup_path']

進入 gitlab 容器中

sudo docker exec -it gitlab /bin/bash

還原步驟如下

# 停止相關數據連接服務
gitlab-ctl stop unicorn
gitlab-ctl stop sidekip

# 檢查狀態
gitlab-ctl status

# 還原備份
sudo gitlab-rake gitlab:backup:restore BACKUP=1555227555_2019_04_14_11.9.8

# 重啟 gitlab 並驗證

sudo gitlab-ctl restart
sudo gitlab-rake gitlab:check SANITIZE=true


1 則留言:

  1. This is cool, thanks for the share. Also, if you are visit our website if you are looking for assistance with your nursing assignment:

    Nursing Assignment Help

    回覆刪除