1. 程式人生 > >GitLab升級維護及升級後報500錯誤

GitLab升級維護及升級後報500錯誤

早先給公司內網搭建了一套基於Git的伺服器GitLab,GitLab升級包更新較快,筆者在升級過程中記錄下爬的教程以及遇到了不少的問題,現在分享給出來以供需要時參考。

備份GitLab

修改預設備份目錄:

預設備份目錄是/var/opt/gitlab/backups,如果不想修改可以略過此步,編輯檔案/etc/gitlab/gitlab.rb,找到程式碼

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

移除該行程式碼前的註釋並修改目錄:

# gitlab_rails['backup_path'] = "/home/backups"

在修改完後需要鍵入gitlab-ctl reconfigure命令過載配置檔案即可。

執行備份:

直接執行下述程式碼:

gitlab-rake gitlab:backup:create

顯示執行成功:

Dumping database ...
Dumping PostgreSQL database gitlabhq_production ... [DONE]
done
Dumping repositories ...
 * group/project ... [DONE]
done
Dumping uploads ...
done
Dumping builds ...
done
Dumping artifacts ...
done
Dumping lfs objects ...
done
Creating backup archive: 1453173545_gitlab_backup.tar ... done Uploading backup archive to remote storage ... skipped Deleting tmp directories ... done done done done done done done Deleting old backups ... skipping

升級GitLab

下載完整包

筆者想過下載個很小的升級包是不是就可以了,答案是否定的,而且由於一些原因,下載比較費力,老老實實用迅雷去下載吧。

點選gitlab-ce-8.3.4-ce.0.el7.x86_64.rpm進入下載頁,點右上角Download,生成下載連結後用迅雷下載,否則龜速

上傳gitlab-ce-8.3.4-ce.0.el7.x86_64.rpm到伺服器/root目錄下

開始升級

回到linux命令列,依次鍵入命令(最後一步是備份意思,可以活力)

sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
sudo gitlab-ctl stop nginx
sudo gitlab-rake gitlab:backup:create

然後鍵入安裝命令

# Ubuntu/Debian系統:
sudo dpkg -i gitlab_x.x.x-omnibus.xxx.deb

# CentOS系統:
sudo rpm -Uvh gitlab-x.x.x_xxx.rpm

耐心等待100%完成後,鍵入重建和重啟命令:

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

遇到的問題

程序佔用

在reconfigure時遇到錯誤: Chef client 11936 is running,查得Chef client程序佔用,查程序列表,鍵入ps命令

ps

相關gitlab的命令全殺掉,kill -9 11936,-9意思是強制結束程序,11936是程序pid

kill -9 11936

然後重新重建和重啟,完美地完成

500錯誤

前面高興的太早,訪問GitLab發現報500錯誤,爬文得知大意為DB資料關係錯誤,需要升級資料庫關係

輸入以下指令檢視資料升級狀態

sudo gitlab-rake db:migrate:status

果然發現有一些顯示為Down,顯示為Up即表示正常同,再執行資料庫關係升級

sudo gitlab-rake db:migrate

執行完成再重複重建、重啟命令,問題解決