zoukankan      html  css  js  c++  java
  • 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后缀。

  • 相关阅读:
    使用nginx在本地查看angular打包项目
    iso与安卓遇到的问题
    Spark 常用的读取数据api
    Spark DataFrame常用API
    spark 词频统计
    spark-shell和spark-sql
    Spark中 RDD、DF、DS的区别与联系
    SparkSQL连接Hive
    spark安装 centos7
    scala安装 centos7
  • 原文地址:https://www.cnblogs.com/Med1tator/p/13141827.html
Copyright © 2011-2022 走看看