Gitlab數據備份及數據恢復重置gitlab管理密碼方法

一、創建備份文件
首先我們得把老服務器上的Gitlab整體備份,使用Gitlab一鍵安裝包安裝Gitlab非常簡單, 同樣的備份恢復與遷移也非常簡單. 使用一條命令即可創建完整的Gitlab備份。

gitlab完全備份命令:

gitlab-rake gitlab:backup:create

使用以上命令會在/var/opt/gitlab/backups目錄下創建一個名稱類似爲1545200330_2018_12_19_11.3.13_gitlab_backup.tar的壓縮包, 這個壓縮包就是Gitlab整個的完整部分, 其中中間部分的是備份創建的2018_12_19日期
/etc/gitlab/gitlab.rb 配置文件須備份
/var/opt/gitlab/nginx/conf nginx配置文件

Gitlab數據備份及數據恢復重置gitlab管理密碼方法

執行完後,/var/opt/gitlab/backups目錄創建一個名稱類似爲1545201028_2018_12_19_11.3.13_gitlab_backup.tar的壓縮包
Gitlab數據備份及數據恢復重置gitlab管理密碼方法

二、更改Gitlab備份目錄
可以通過/etc/gitlab/gitlab.rb配置文件來修改默認存放備份文件的目錄,配置文件中229行爲系統默認備份路徑,我們只需要在下面添加一行,或者直接修改默認配置,去掉註釋即可。

Gitlab數據備份及數據恢復重置gitlab管理密碼方法
做完這步以後需要重新加載配置(相當於重啓gitlab)命令如下:

gitlab-ctl reconfigure
之後我們可以再進行一次全量備份,可以看到備份的目錄已經被我們更改了。

gitlab-rake gitlab:backup:create

Gitlab數據備份及數據恢復重置gitlab管理密碼方法

三、 Gitlab自動備份
在crontab文件裏面,每一行代表一項任務,每行的每個字段代表一項設置,它的格式共分爲六個字段,前五段是時間設定段,第六段是要執行的命令段,每個字段之間用空格分割,沒用的段用*代替,格式如下:

          • 命令
            m h dom mon dow command
            m: 表示分鐘,可以是從0到59之間的任何整數。
            h:表示小時,可以是從0到23之間的任何整數。
            dom:表示日期,可以是從1到31之間的任何整數。
            mon:表示月份,可以是從1到12之間的任何整數。
            week:表示星期幾,可以是從0到7之間的任何整數,這裏的0或7代表星期日。
            command:要執行的命令,可以是系統命令,也可以是自己編寫的腳本文件(如shell文件)。
            實現每天凌晨2點進行一次自動備份:通過crontab使用備份命令實現,需重啓cron服務

#輸入命令crontab -e
crontab -e
#輸入相應的任務
0 2 * /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1

Gitlab數據備份及數據恢復重置gitlab管理密碼方法

編輯完保存退出,也可以直接編輯 vim /etc/crontab 這個文件,效果是一樣的。 這時候需要重啓一下crontab服務並且,設置爲開機自啓。

#重啓定時任務服務
systemctl restart crond.service
#實現開機自啓動
systemctl enable crond.service
四、 設置備份過期時間
設置只保存最近7天的備份,編輯 /etc/gitlab/gitlab.rb 配置文件,找到gitlab_rails[‘backup_keep_time’],設置爲你想要設置的值,然後保存。這個地方的604800是以秒爲單位。同樣修改完以後重新載入配置。

Gitlab數據備份及數據恢復重置gitlab管理密碼方法

五、從備份文件中恢復gitlab
第一步,將備份文件權限修改爲777,不然可能恢復的時候會出現權限不夠,不能解壓的問題
chmod 777 1545201028_2018_12_19_11.3.13_gitlab_backup.tar
第二步,執行命令停止相關數據連接服務
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq

Gitlab數據備份及數據恢復重置gitlab管理密碼方法

第三步,執行命令從備份文件中恢復Gitlab
Gitlab的恢復操作會先將當前所有的數據清空,然後再根據備份數據進行恢復

#gitlab-rake gitlab:backup:restore BACKUP=備份文件編號
#例如我們的備份文件的編號是1545202224_2018_12_19_11.3.13,因此執行下面的命令即可恢復
gitlab-rake gitlab:backup:restore BACKUP=1545202224_2018_12_19_11.3.13

敲完命令後,出現第一個交互頁面,

Gitlab數據備份及數據恢復重置gitlab管理密碼方法

輸入“yes”繼續。 這時已經開始恢復了。
出現第二個交互頁面,繼續輸入“yes”

Gitlab數據備份及數據恢復重置gitlab管理密碼方法

第四步,啓動Gitlab
gitlab-ctl start

Gitlab數據備份及數據恢復重置gitlab管理密碼方法

這時已經把數據恢復完成了,我們可以訪問gitlab地址http://192.168.10.178/dashboard/projects

Gitlab數據備份及數據恢復重置gitlab管理密碼方法

恢復已完成~

GitLab重置用戶名密碼

打開終端,訪問:

gitlab-rails console production

輸入:

user = User.where(id: 1).first
user.password=123456
user.password_confirmation = ‘123456’
user.save! #注意加上 “!”

然後退出命令行即可。

quit

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章