gitlab数据迁移并升级版本
公司目前的gitlab部署在docker上面,发现升级版本很痛苦,现在的想法是,将docker迁移到aws的ec2上面,使用yum部署,后期升级直接使用yum 就可以升级,方便很多。
gitlab数据迁移
这里需要注意一个点,gitlab只支持同版本迁移,所以需要在ec2上部署一个和docker版本相同版本的gitlab
全新的gitlab部署
-
部署gitlab-ce
#部署社区版yum源 curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash #安装gitlab-ce 13.8.8版本 yum -y install gitlab-ce-13.8.8
-
修改配置文件
vim /etc/gitlab/gitlab.rb #修改下面这一行 external_url 'http://172.30.126.152'
-
重启配置和服务
#加载配置 gitlab-ctl reconfigure #重启服务 gitlab-ctl restart
gitlab数据导入导出
-
进入docker进行数据备份
docker exec -it cpntainer_id /bin/bash 备份数据: gitlab-rake gitlab:backup:create RAILS_ENV=production 备份文件拷贝到本地: docker cp container_id:/var/opt/gitlab/backups/1666083077_2022_10_18_13.8.8_gitlab_backup.tar ./ 备份文件传输到目标服务器: scp 1666083077_2022_10_18_13.8.8_gitlab_backup.tar ec2-user@172.30.126.152:/var/opt/gitlab/backups/
-
查看目标服务器数据
[root@ip-172-30-126-152 gitlab]# cd /var/opt/gitlab/backups/ [root@ip-172-30-126-152 backups]# ls 1666083077_2022_10_18_13.8.8_gitlab_backup.tar 1666148460_2022_10_19_14.0.12_gitlab_backup.tar 1666153779_2022_10_19_14.10.5_gitlab_backup.tar 1666147442_2022_10_19_13.8.8_gitlab_backup.tar 1666152737_2022_10_19_14.3.6_gitlab_backup.tar 1666154328_2022_10_19_15.0.5_gitlab_backup.tar 1666148076_2022_10_19_13.12.15_gitlab_backup.tar 1666153289_2022_10_19_14.9.5_gitlab_backup.tar tmp 注意:1666083077_2022_10_18_13.8.8_gitlab_backup.tar这个是我们从源服务器拷贝过来的原始数据,用这个进行恢复数据
-
执行恢复数据
## 执行数据导入 注意:BACKUP后面跟的文件吗,把_gitlab_backup.tar去掉,这一步需要确保gitlab服务是启动状态 gitlab-rake gitlab:backup:restore BACKUP=1666083077_2022_10_18_13.8.8 ## 这一步有个坑,除了把上面的源数据导入之后,重启gitlab,会发现部分项目进入会出现报500的情况,解决方案如下: 找到源服务器的gitlab-secrets.json文件,在/etc/gitlab/下面,并传到目标服务器下面 [root@ip-172-30-126-152 backups]# cd /etc/gitlab/ [root@ip-172-30-126-152 gitlab]# ls config_backup gitlab.rb gitlab-secrets.json gitlab-secrets.json.bak initial_root_password trusted-certs ## 重新加载配置 gitlab-ctl reconfigure ##重启gitlab服务 gitlab-ctl restart 至此原始版本13.8.8的数据已经成功迁移到了ec2服务器上面
gitlab版本升级
本次升级将把gitlab版本升级到最新版本从13.8.8升级到15.4.2
gitlab升级不能跨版本升级,只能一个个版本逐次升级,升级路径见gitlab官网
gitlab升级路径:https://docs.gitlab.com/ee/update/index.html#upgrade-paths
8.11.Z -> 8.12.0 -> 8.17.7 -> 9.5.10 -> 10.8.7 -> 11.11.8 -> 12.0.12 -> 12.1.17 -> 12.10.14 -> 13.0.14 -> 13.1.11 -> 13.8.8 -> 13.12.15 -> 14.0.12 -> 14.3.6 -> 14.9.5 -> 14.10.Z -> 15.0.Z -> 15.4.0 -> latest 15.Y.Z
可以使用上面的Upgrade Path Tool进行更细致的版本升级路径
https://gitlab-com.gitlab.io/support/toolbox/upgrade-path/
-
从13.8.8版本升级到13.12.15
## yum安装升级到13.12.15 yum -y install gitlab-ce-13.12.15 ##加载配置 gitlab-ctl reconfigure 这一步要尤其注意,查看有没有报错,报错上面有很明确的指引,执行命令,直到不报错为止 ## 重启服务 gitlab-ctl restart 登录到gitlab上查看各个项目是否正常,http://172.30.126.152/help查看版本号
-
后续版本的更新重复上面步骤,需要注意的是每升级一次版本就需要重新加载配置,查看有无报错,按照报错指引操作,再重启服务。确认版本升级没有问题了再是升级下一个版本