前言:gitlab11升級到14還是有挺多需要注意的坑,也算是做一次積累吧,升級前後,gitalb的WEB介面也變化了很多,升級過程需要注意的地方我放到最後說明,挺關鍵的
一、首先需要下載好要升級的包,這裡需要注意,gitlab的官網有說明如何升級,大概就是如下面所示,跨版本升級先要升級到版本最後一個版本才行,比如線上使用11.0.7,要升級到11.11.8才能升級到12.0.12
包下載地址 https://packages.gitlab.com/gitlab/gitlab-ce
官網建議按以下版本來升級
GitLab 8: 8.11.Z > 8.12.0 > 8.17.7 GitLab 9: 9.0.13 > 9.5.10 GitLab 10: 10.0.7 > 10.8.7 GitLab 11: 11.0.6 > 11.11.8 GitLab 12: 12.0.12 > 12.1.17 > 12.10.14 GitLab 13: 13.0.14 > 13.1.11 > 13.8.8 > 13.12.15 GitLab 14: 14.0.12 > 14.3.6 > 14.9.5 > 14.10.5 GitLab 15: 15.0.5 > 15.1.6 (for GitLab instances with multiple web nodes) > 15.4.6 > latest 15.Y.Z
官網檔案連結在這裡
https://docs.gitlab.com/ee/update/index.html#upgrade-paths
二、升級步驟
2.1 先把nginx停止,外部無法存取了
/usr/local/nginx/sbin/nginx -s stop
2.2 做一次備份,整個過程我只做一次備份,我也在阿里雲做映象以防萬一,同時我在操作線上升級前已經反覆嘗試,還是有信心的
gitlab-rake gitlab:backup:create 備份敏感資料 cp /etc/gitlab/gitlab.rb /data/gitlab/backups cp /etc/gitlab/gitlab-secrets.json /data/gitlab/backups
2.3 關閉gitlab的部分服務
13.x以前版本關閉unicorn,14.x版本就不支援unicorn,從13版本開始,我使用puma方式,停止方式gitlab-ctl stop puma
gitlab-ctl stop unicorn gitlab-ctl stop sidekiq
2.4 升級新版本
rpm -Uvh 要升級版本.rpm
這裡要升級到11.11.8版本為例子
rpm -Uvh gitlab-ce-11.11.8-ce.0.el7.x86_64.rpm
2.5升級完成後,沒有報錯情況下,需要重新執行設定,否則啟動會失敗
gitlab-ctl reconfigure
2.6 啟動
gitlab-ctl restart
2.7 檢視gitlab版本資訊
第一種 gitlab-rake gitlab:env:info 第二種 cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
2.8 檢查服務
gitlab-rake gitlab:check SANITIZE=true systemctl status gitlab-runsvdir.service
2.9 啟動nginx
/usr/local/nginx/sbin/nginx
三、檢查測試git提交是否正常
我這裡會修改程式碼,然後提交是否正常,如果沒有問題就當升級成功了
四、需要注意的問題,我都說明下
4.1 gitlab13.x版本要安裝並且開啟Puma,因為14版本就不支援unicorn
4.2 升級13版本前一個版本需要升級postgresql,就是升級到了12.10.14版本,再執行更新postgresql
更新 gitlab-ctl pg-upgrade 需要重新執行設定,否則啟動會失敗 gitlab-ctl reconfigure 啟動 gitlab-ctl restart
4.3 在gitlab13.x的最後一個版本 將傳統儲存轉換為雜湊儲存,也就是13.12.15版本,檔案說明
https://docs.gitlab.com/ee/administration/raketasks/storage.html#migrate-to-hashed-storage%20for%20details
步驟如下
gitlab-rake gitlab:storage:migrate_to_hashed # 執行成功後,再次執行,會提示如下內容: #There are no projects requiring storage migration. Nothing to do! # 全部遷移成功,以下命令檢視所列出的專案總數與頁面的理應一致 gitlab-rake gitlab:storage:hashed_projects # 檢視,全部遷移成功以下兩條命令應該為 0 gitlab-rake gitlab:storage:legacy_projects gitlab-rake gitlab:storage:legacy_attachments # 列出傳統儲存的專案以及附件 gitlab-rake gitlab:storage:list_legacy_projects gitlab-rake gitlab:storage:list_legacy_attachments
4.5 升級14.x版本前一個版本升級postgresql,也就是13.12.15版本
更新 gitlab-ctl pg-upgrade 需要重新執行設定,否則啟動會失敗 gitlab-ctl reconfigure 啟動 gitlab-ctl restart
最後沒問題了,正常使用~