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

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

1.2 備份 Data


打開 /etc/gitlab/gitlab.rb

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

進行以下的修改

  1. # 取消下面兩行的註解
  2. gitlab_rails['manage_backup_path'] = true  # 是否備份
  3. gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"  #備份目錄
  4.  
  5. # 修改備份過期時間
  6. gitlab_rails['backup_keep_time'] = 604800

重新加載配置文件

  1. sudo docker exec -it gitlab gitlab-ctl reconfigure

手動執行備份

  1. 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

  1. sudo docker stop gitlab

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

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

重啟 Gitlab

  1. sudo docker start gitlab

2.2 還原 Data


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

進入 gitlab 容器中

  1. sudo docker exec -it gitlab /bin/bash

還原步驟如下

  1. # 停止相關數據連接服務
  2. gitlab-ctl stop unicorn
  3. gitlab-ctl stop sidekip
  4.  
  5. # 檢查狀態
  6. gitlab-ctl status
  7.  
  8. # 還原備份
  9. sudo gitlab-rake gitlab:backup:restore BACKUP=1555227555_2019_04_14_11.9.8
  10.  
  11. # 重啟 gitlab 並驗證
  12.  
  13. sudo gitlab-ctl restart
  14. 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

    回覆刪除