【填坑记】GitLab 服务器迁移和升级

您所在的位置:网站首页 gitlab服务器迁移 【填坑记】GitLab 服务器迁移和升级

【填坑记】GitLab 服务器迁移和升级

2023-06-25 12:10| 来源: 网络整理| 查看: 265

由于之前采用的是 Docker 部署的 GitLab,所以在升级时,遇见了一些问题,在此记录一下。

1. 旧服务器上 GitLab

Docker Compose:

version: '2' services: gitlab: image: 'twang2218/gitlab-ce-zh' restart: unless-stopped hostname: 'git.xxx.com' environment: TZ: 'Asia/Shanghai' GITLAB_OMNIBUS_CONFIG: | external_url 'http://git.xxx.com' gitlab_rails['time_zone'] = 'Asia/Shanghai' ports: - '80:80' - '443:443' volumes: - /home/gitlab/config:/etc/gitlab - /home/gitlab/data:/var/opt/gitlab - /home/gitlab/log:/var/log/gitlab 复制代码2. 升级遇见的坑

之前旧版的版本号是 11.0.5 ,现在官方的最新版本是 11.7.0-ce.0 , 由于之前采用的是汉化后的GitLab的修改版本,官方并没有 11.0.5 这个版本号可以下载。然而直接使用新版本的话,会出现各种问题,比如权限问题,版本问题等。

不能将 gitlab 文件夹直接打包进行转移,会遇见各种权限问题。 不能直接将 汉化修改版 直接改成 官方新版,会遇见版本不一致问题。 3. 正确服务器迁移的姿势

在原来的服务器上运行如下命令:

# 进入到容器中 docker exec -it home_gitlab_1 bash # 在容器中执行 # 停止数据连接服务 > gitlab-ctl stop unicorn > gitlab-ctl stop sidekiq # 备份数据 > gitlab-rake gitlab:backup:create 复制代码

执行以上命令后,会在宿主机上的 /home/gitlab/data/backups 产生一个 tar 文件,例如: 1548223311_2019_01_23_11.0.5_gitlab_backup.tar

将这个 tar 文件,传输到新的服务器上

在新的服务器上,运行原来服务器上的 docker compose 文件

记得修改一下版本号,保持与之前的版本一致(如果镜像有新的版本的话,不写版本号,会下载最新版,就不能进行备份的恢复了)。 version: '2' services: gitlab: image: 'twang2218/gitlab-ce-zh:11.0.5' restart: unless-stopped hostname: 'git.xxx.com' environment: TZ: 'Asia/Shanghai' GITLAB_OMNIBUS_CONFIG: | external_url 'http://git.xxx.com' gitlab_rails['time_zone'] = 'Asia/Shanghai' ports: - '80:80' - '443:443' volumes: - /home/gitlab/config:/etc/gitlab - /home/gitlab/data:/var/opt/gitlab - /home/gitlab/log:/var/log/gitlab 复制代码# 启动Docker docker-compose up -d 复制代码

在新的服务器上启动 Docker 后,将备份的 tar 文件拷贝到 /home/gitlab/data/backups 目录下,并将文件权限设置为 777

进入到新服务器的容器中执行以下命令:

# 进入到容器中 docker exec -it home_gitlab_1 bash # 在容器中执行 # 停止数据连接服务 > gitlab-ctl stop unicorn > gitlab-ctl stop sidekiq # 恢复数据 # BACKUP=时间戳(以 1548223311_2019_01_23_11.0.5_gitlab_backup.tar 为例) > gitlab-rake gitlab:backup:restore BACKUP=1548223311_2019_01_23_11.0.5 # 恢复完成后,重启服务 > gitlab-ctl restart 复制代码

服务器迁移算是完成了,如果不进行升级的话,到此结束。

4. GitLab 升级

同镜像升级

修改 compose 文件,将镜像升级到与官方版本一致(经查阅 Docker 镜像文档,得知 11.1.4 版本是基于官方 gitlab/gitlab-ce:11.1.4-ce.0 进行汉化修改构建,所以本次升级为 11.1.4 版本)

version: '2' services: gitlab: image: 'twang2218/gitlab-ce-zh:11.1.4' restart: unless-stopped hostname: 'git.xxx.com' environment: TZ: 'Asia/Shanghai' GITLAB_OMNIBUS_CONFIG: | external_url 'http://git.xxx.com' gitlab_rails['time_zone'] = 'Asia/Shanghai' ports: - '80:80' - '443:443' volumes: - /home/gitlab/config:/etc/gitlab - /home/gitlab/data:/var/opt/gitlab - /home/gitlab/log:/var/log/gitlab 复制代码# 停止之前的 Docker docker-compose down # 检查一下镜像状态 docker ps # 替换 compose 文件 # 启动新的镜像 docker-compose up -d # 启动完成后,进入到容器中 docker exec -it home_gitlab_1 bash # 停止数据连接服务 > gitlab-ctl stop unicorn > gitlab-ctl stop sidekiq # 刷新配置 > gitlab-ctl reconfigure # 重启服务 > gitlab-ctl restart # 重启后,再次进入容器 docker exec -it home_gitlab_1 bash # 创建备份 > gitlab-rake gitlab:backup:create # 退出容器 > exit # 停止docker docker-compose down 复制代码

将数据备份,拷贝到宿主机的其他地方,比如:/home/gitlab-backup/xxx_11.1.4_gitlab_backup.tar

跨越到官方镜像(gitlab/gitlab-ce)

修改 compose 文件,注意版本选择:

version: '2' services: gitlab: image: 'gitlab/gitlab-ce:11.1.4-ce.0' restart: unless-stopped hostname: 'git.xxx.com' environment: TZ: 'Asia/Shanghai' GITLAB_OMNIBUS_CONFIG: | external_url 'http://git.xxx.com' gitlab_rails['time_zone'] = 'Asia/Shanghai' ports: - '80:80' - '443:443' volumes: - /home/gitlab/config:/etc/gitlab - /home/gitlab/data:/var/opt/gitlab - /home/gitlab/log:/var/log/gitlab 复制代码# 检查 docker 运行状态,是否已经停止了 docker ps # 删除 gitlab 文件夹 rm -rf /home/gitlab # 替换 compose 文件 # 启动 docker compose docker-compose up -d # 启动完成后,将备份的 tar 拷贝到 /home/gitlab/data/backups cp /home/gitlab-backup/xxx_11.1.4_gitlab_backup.tar /home/gitlab/data/backups # 设置权限 chmod 777 /home/gitlab/data/backups/xxx_11.1.4_gitlab_backup.tar # 进入容器 docker exec -it home_gitlab_1 bash # 停止数据连接服务 > gitlab-ctl stop unicorn > gitlab-ctl stop sidekiq # 恢复数据 # BACKUP=时间戳(以 xxx_11.1.4_gitlab_backup.tar 为例) > gitlab-rake gitlab:backup:restore BACKUP=xxx_11.1.4 # 刷新配置 > gitlab-ctl reconfigure # 重启服务 > gitlab-ctl restart # 重启后,再次进入容器 docker exec -it home_gitlab_1 bash # 创建备份,以备不时之需 > gitlab-rake gitlab:backup:create # 退出容器 > exit # 停止docker docker-compose down 复制代码

将数据备份,拷贝到宿主机的其他地方,比如:/home/gitlab-backup/zzz_11.1.4_gitlab_backup.tar

官方镜像升级

升级到官方最新版本(11.7.0-ce.0)

修改 compose 文件

version: '2' services: gitlab: image: 'gitlab/gitlab-ce:11.7.0-ce.0' restart: unless-stopped hostname: 'git.xxx.com' environment: TZ: 'Asia/Shanghai' GITLAB_OMNIBUS_CONFIG: | external_url 'http://git.xxx.com' gitlab_rails['time_zone'] = 'Asia/Shanghai' ports: - '80:80' - '443:443' volumes: - /home/gitlab/config:/etc/gitlab - /home/gitlab/data:/var/opt/gitlab - /home/gitlab/log:/var/log/gitlab 复制代码# 检查 docker 运行状态,是否已经停止了 docker ps # 替换 compose 文件 # 启动 docker compose docker-compose up -d # 进入容器 docker exec -it home_gitlab_1 bash # 停止数据连接服务 > gitlab-ctl stop unicorn > gitlab-ctl stop sidekiq # 刷新配置 > gitlab-ctl reconfigure # 重启服务 > gitlab-ctl restart # 重启后,再次进入容器 docker exec -it home_gitlab_1 bash # 创建备份,以备不时之需 > gitlab-rake gitlab:backup:create # 退出容器 > exit 复制代码

将数据备份,拷贝到宿主机的其他地方,比如:/home/gitlab-backup/nnn_11.1.7_gitlab_backup.tar

Gitlab 服务器迁移和升级全部完成。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3