Gitlab跨版本升級


本文記錄Gitlab跨版本升級的具體操作過程。

按照官方的說法,gitlab允許小版本直接升級,大版本需要階段升級。

跨版本升級示例:11.0.x -> 11.11.x -> 12.0.x -> 12.10.x -> 13.0.x

官方推薦的升級路線文檔:https://docs.gitlab.com/ee/policy/maintenance.html#upgrade-recommendations

目的

實現gitlab版本:11.2.3到13.0.0版本的升級,我選擇的升級路線是:11.2.3 => 11.11.8 => 12.0.12 => 12.10.6

我當前創建gitlab容器的腳本如下:

sudo docker run --detach \
  --hostname gitlab.example.com \
  --publish 8443:443 --publish 8080:80 --publish 8022:22 \
  --name gitlab \
  --restart always \
  --volume /home/ubuntu/Apps/gitlab/etc/gitlab:/etc/gitlab \
  --volume /home/ubuntu/Apps/gitlab/var/log/gitlab/logs:/var/log/gitlab \
  --volume /home/ubuntu/Apps/gitlab/var/opt/gitlab:/var/opt/gitlab \
  gitlab/gitlab-ce:11.2.3-ce.0

我當前的gitlab容器已經將/etc/gitlab/var/log/gitlab/var/opt/gitlab掛載到了宿主機上。

操作步驟

進入gitlab容器,停止gitlab服務,然后退出容器:

sudo docker exec -it gitlab /bin/bash
# 進入容器后執行
gitlab-ctl stop

退出容器后,刪除gitlab容器:

sudo docker rm gitlab -f

使用新版本的腳本運行gitlab容器,這里只修改gitlab的鏡像版本就可以了:

sudo docker run --detach \
  --hostname gitlab.example.com \
  --publish 8443:443 --publish 8080:80 --publish 8022:22 \
  --name gitlab \
  --restart always \
  --volume /home/ubuntu/Apps/gitlab/etc/gitlab:/etc/gitlab \
  --volume /home/ubuntu/Apps/gitlab/var/log/gitlab/logs:/var/log/gitlab \
  --volume /home/ubuntu/Apps/gitlab/var/opt/gitlab:/var/opt/gitlab \
  gitlab/gitlab-ce:11.2.3-ce.0

啟動容器后,查看容器運行狀態:

sudo docker ps | grep gitlab

等到容器狀態為Up xxx (healthy) 后,進入容器,停掉gitlab服務。。。

后面就是重復工作了,直到運行最新版本的gitlab容器。

Gitlab備份

在升級之前,最好先對gitlab數據做一個全量備份,避免升級失敗造成的不可逆影響。

具體的還原操作如下:

如果你和我一樣使用gitlab容器,首先進入容器,然后執行備份命令:

gitlab-ctl gitlab:backup:create

以上命令執行完后,會在容器的/var/opt/gitlab/backups目錄下創建文件名類似1592276197_2020_06_16_11.2.3_gitlab_backup.tar的備份文件。

Gitlab還原

如果你想利用gitlab的備份文件還原,那么你運行還原操作的gitlab必須和備份時使用的gitlab版本一致,否則可能會出現還原失敗的問題。

具體的還原操作如下:

如果你和我一樣使用gitlab容器,首先將gitlab的備份文件拷貝到/var/opt/gitlab/backups/目錄下,然后進入gitlab容器,執行還原命令:

gitlab-ctl gitlab:backup:restore BACKUP=1592276197_2020_06_16_11.2.3

BACKUP命令參數指定值為/var/opt/gitlab/backups/目錄下的備份文件,但是無需攜帶_gitlab_backup.tar后綴。


免責聲明!

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



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