前言 公司之前gitlab长时间之后经常宕机假死,版本较旧,决定迁移并升级到新版本。
旧版本:10.1.0 服务器二进制安装
新版本:gitlab-ee:13.1.0-ee.0,新server上面,采用docker安装
1. gitlab数据备份
sudo gitlab-rake gitlab:backup:create
备份文件存默认到 /var/opt/gitlab/backups
可以编辑 /etc/gitlab/gitlab.rb 修改默认目录
如果新gitlab部署到另外一台server上,拷贝备份数据gitlab服务器上,可将新的server上面的/data目录通过NFS挂载到旧的/var/opt/gitlab/backups目录下,这样更方便,NFS安装挂载方式,这里不在详述。
2. 安装gitlab
2.1 安装部署
先部署docker,docker安装方式可参考官网。
gitlab的docker安装方式如下:
export GITLAB_HOME=/opt/gitlab
docker run --detach \
--hostname git.abc.com \
--publish 443:443 --publish 80:80 \
--name gitlab \
--restart always \
--volume $GITLAB_HOME/config:/etc/gitlab \
--volume $GITLAB_HOME/logs:/var/log/gitlab \
--volume $GITLAB_HOME/data:/var/opt/gitlab \
--shm-size 256m \
gitlab/gitlab-ee:latest
2.2 恢复数据
注意
gitlab只能同一个版本之间进行迁移,所以新server上面部署同版本的gitlab
#拷贝文件
cp 1614819859_2021_03_04_11.10.4-ee_gitlab_backup.tar /var/opt/gitlab/backups
# 进入docker
docker exec -it gitlab bash
cd /var/opt/gitlab/backups
#修改备份文件的所有者为git
chown git:git 1614819859_2021_03_04_11.10.4-ee_gitlab_backup.tar /var/opt/gitlab/backups
#恢复还原数据
gitlab-rake gitlab:backup:restore BACKUP=1614819859_2021_03_04_11.10.4-ee
2.3 依次升级
按照官方推荐的升级序列进行逐次升级,升级到自己像部署到的版本,跨版本升级会报错,步骤如下:
docker exec -it gitlab bash
gitlab-ctl stop
exit
docker stop gitlab
docker rm gitlab
按照 2.1 docker部署gitlab的方式升级部署,只需要替换对应gitlab版本即可。
经过一次或者多次升级到指定版本。
3. 其他常见问题
gitlab中项目名URL为字符串或者其他不正确的域名,而不是正确的ip或域名.
解决方式:进入容器,修改 /etc/gitlab/gitlab.rb
,将external_url的值修改为对应访问域名即可。
例如:external_url 'http//gitlab.abc.com'
,此处前面要加http,不加的话不能正常启动。
另外本人测试如果改成external_url 'https//gitlab.abc.com'
,此处不能正常启动,因为本人是用额外Nginx反代http,证书没有在gitlab自带的Nginx上配置, 可能是这个原因导致启动不正常的。