之前在生產環境部署的gitlab是7.x版本的,提供給公司內部的員工來使用,大概有350個用戶左右,gitlab從8.x版本之后內置了CI和CD的集成,所以就考慮到升級版本的問題
通過參考和總結gitlab的官方文檔,總結出來了一條可行的升級的方法,而且停止服務的時間較短,不會造成用戶數據丟失,對用戶的影響最小.成功地從7.14版本升級到8.13.5版本
主要的思路和步驟如下:
由於內網用戶使用到的gitlab的地址是由反向代理代理到gitlab的地址的,所以,在一台新的服務器上升級gitlab和遷移數據,然后將反向代理的地址指向新的服務器地址即可
1.在新的服務器上安裝gitlab8.x(參照gitlab的安裝文檔:https://gitlab.com/jiaoyiping/gitlab/blob/8-13-5-zh/doc/install/installation.md)
2.將新安裝的gitlab的數據庫刪除,將舊的gitlab的數據庫遷移到新的gitlab服務器上
3.將舊的gitlab的版本庫復制到新的gitlab的服務器的相關位置
4.執行gitlab的數據庫升級操作以及靜態資源的編譯操作
# Run database migrations sudo -u git -H bundle exec rake db:migrate RAILS_ENV=production
# Clean up assets and cache sudo -u git -H bundle exec rake assets:clean assets:precompile cache:clear RAILS_ENV=production
參照gitlab升級操作的文檔:https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/update/7.14-to-8.0.md 的第7個步驟
5.gitlab安裝和升級成功,切換反向代理到新的服務器地址