Gitlab備份、遷移、恢復和升級


Gitlab備份、遷移、恢復和升級

自建的Gitlab服務器常常會因為使用時間的增長,其空間容量等硬件需求都需要升級,或者遷移至更高配置的服務器上。備份、遷移、恢復、升級過程如下

1、gitlab備份

備份前gitlab的項目如圖所示

備份時需要保持gitlab處於正常運行狀態,直接執行gitlab-rake gitlab:backup:create進行備份

使用以上命令會在/var/opt/gitlab/backups目錄下創建一個名稱類似為1530156812_2018_06_28_10.8.4_gitlab_backup.tar的壓縮包, 這個壓縮包就是Gitlab整個的完整部分, 其中開頭的1530156812_2018_06_28_10.8.4是備份創建的日期

/etc/gitlab/gitlab.rb 配置文件須備份

/var/opt/gitlab/nginx/conf nginx配置文件

/etc/postfix/main.cfpostfix 郵件配置備份

1.1 修改備份文件目錄

可以通過/etc/gitlab/gitlab.rb配置文件來修改默認存放備份文件的目錄

gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"

修改完成之后使用gitlab-ctl reconfigure命令重載配置文件即可

1.2 設置備份過期時間

[root@gitlab ~]# vim /etc/gitlab/gitlab.rb

gitlab_rails['backup_keep_time'] = 604800        #以秒為單位

1.3 gitlab自動備份

創建定時任務

[root@gitlab ~]# crontab -e

0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create

 

2、gitlab遷移

遷移的整體思路是:

1、在新服務器上安裝相同版本的gitlab

2、將備份生成的備份文件發送到新服務器的相同目錄下

這里在10.0.0.6的機器上安裝了相同版本的gitlab並能正常運行使用

在老服務器上將備份文件發送至新服務器的相應目錄下

[root@gitlab ~]# scp /var/opt/gitlab/backups/1530156812_2018_06_28_10.8.4_gitlab_backup.tar root@10.0.0.6:/var/opt/gitlab/backups/

 

3、gitlab恢復

[root@gitlab ~]# gitlab-ctl stop unicorn        #停止相關數據連接服務

[root@gitlab ~]# gitlab-ctl stop sidekiq

[root@gitlab-new ~]# chmod 777 /var/opt/gitlab/backups/1530156812_2018_06_28_10.8.4_gitlab_backup.tar

#修改權限,如果是從本服務器恢復可以不修改

[root@gitlab ~]# gitlab-rake gitlab:backup:restore BACKUP=1530156812_2018_06_28_10.8.4    

#1530156812_2018_06_28_10.8.4編號備份中恢復

按照提示輸入兩次yes並回車

[root@gitlab ~]# gitlab-ctl start                #啟動gitlab

瀏覽器訪問新服務器的地址進行查看,遷移成功

在實際情況中訪問gitlab可能是用域名訪問,我們可以修改gitlab配置文件中的url再進行備份,這樣就不會影響遷移過程,恢復完成后需要進行的只是修改域名對應的dns解析ip地址

 

4、gitlab升級

[root@gitlab ~]# gitlab-ctl stop        #關閉gitlab服務

[root@gitlab ~]# gitlab-rake gitlab:backup:create        #備份

下載新版gitlab的rpm包安裝,安裝時選擇升級

安裝的過程中可能會出現報錯

Error executing action `run` on resource 'ruby_block[directory resource: /var/opt/gitlab/git-data/repositories]'

解決方法為

[root@gitlab ~]# chmod 2770 /var/opt/gitlab/git-data/repositories

安裝成功后重新加載配置並啟動

[root@gitlab ~]# gitlab-ctl reconfigure

[root@gitlab ~]# gitlab-ctl restart

 

5、gitlab更改默認的nginx

[root@gitlab ~]# vim /etc/gitlab/gitlab.rb

nginx['enable'] = false        #不啟用nginx

檢查默認nginx配置文件,並遷移至新Nginx服務

/var/opt/gitlab/nginx/conf/nginx.conf #nginx配置文件,包含gitlab-http.conf文件

/var/opt/gitlab/nginx/conf/gitlab-http.conf #gitlab核心nginx配置文件

重啟 nginx、gitlab服務

[root@gitlab ~]# gitlab-ctl restart

[root@gitlab ~]# systemctl restart nginx.service

訪問可能出現報502。原因是nginx用戶無法訪問gitlab用戶的socket文件。 重啟gitlab需要重新授權

[root@gitlab ~]# chmod -R o+x /var/opt/gitlab/gitlab-rails

 

參考來源:http://www.xuliangwei.com/xubusi/803.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM