描述:最近公司迁移gitlab,我没有迁移过,经过网上查找资料最终完成迁移,途中也遇到挺多坑和两个问题,希望能帮到你。
注意:新服务器gitlab版本也需要和旧版本一致。
首先查看原Gitlab版本
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION 我的系统是unbuntu,系统不一致安装方法可能不大一直,需注意一下。
sudo apt-get update sudo apt-get upgrade sudo apt-get install -y curl openssh-server ca-certificates curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash (注意:我的版本是13.6.3)
udo EXTERNAL_URL="http://gitlab.example.com" apt-get install gitlab-ce=13.6.3-ce.0 请将 http://gitlab.example.com 替换为你的 GitLab 域名或ip+端口。
出现以下提示,表示安装成功
进入配置文件
sudo vim /etc/gitlab/gitlab.rb 配置对外IP和默认端口(大概第33行)
保存退出使配置生效
gitlab-ctl reconfigure 
先备份一下一下两个文件
/etc/gitlab/gitlab.rc /etc/gitlab/gitlab-secrets.json /etc/gitlab/gitlab-secrets.json文件,此文件中包含数据库加密密钥,CI/CD变量以及双因子认证等变量信息,如果在GitLab中使用到此部分内容,必须进行此文件的手动恢复。
旧服务器执行进行数据备份
gitlab-rake gitlab:backup:create 备份地址在 /var/opt/gitlab/backups/下
cd /var/opt/gitlab/backups/ ll 
下载并传输到新服务器的/var/opt/gitlab/backups/下,注意权限问题(下载前和上传后最好都将权限赋值为777)
sudo chmod 777 1716965063_2024_05_29_13.6.3_gitlab_backup.tar 
停止unicorn和sidekiq服务,puma服务
gitlab-ctl stop nginx && gitlab-ctl stop puma && gitlab-ctl stop unicorn && gitlab-ctl stop sidekiq 应用备份数据 中途输入两个yes
注意BACKUP=打包的编号
gitlab-rake gitlab:backup:restore BACKUP=1716978170_2024_05_29_13.6.3 

将旧服务器/etc/gitlab/gitlab-secrets.json替换新服务器/etc/gitlab/gitlab-secrets.json,注意先提前备份一下新服务器该文件,以免有问题还原。
重启gitlab服务
gitlab-ctl restart 在还原过程中遇到两个问题,下面列出问题以及解决方法
PG::ConnectionBad: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/opt/gitlab/postgresql/.s.PGSQL.5432"? /opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/db.rake:49:in `block (3 levels) in ' /opt/gitlab/embedded/bin/bundle:23:in `load' /opt/gitlab/embedded/bin/bundle:23:in `' Tasks: TOP => gitlab:db:configure (See full trace by running task with --trace) 解决方法:
1、按住CTRL+C强制结束
2、先停止 gitlab ,命令: sudo gitlab-ctl stop
3、执行命令: sudo chmod 755 /var/opt/gitlab/postgresql
4、执行命令:sudo systemctl restart gitlab-runsvdir
5、再次配置:sudo gitlab-ctl reconfigure
6、启动即可:sudo gitlab-ctl restart
Restoring PostgreSQL database gitlabhq_production ... ERROR: must be owner of extension pg_trgm ERROR: must be owner of extension btree_gist ERROR: must be owner of extension btree_gist ERROR: must be owner of extension pg_trgm 解决办法:
1、修改postgresql相关配置
# 修改以下配置文件,修改端口监听地址,默认监控localhost,* 代表all $ vim /var/opt/gitlab/postgresql/data/postgresql.conf listen_addresses = '*' # 以下配置文件新增以下两行 $ vim /var/opt/gitlab/postgresql/data/pg_hba.conf local all all trust host all all 127.0.0.1/32 trust 2、重启gitlab服务
gitlab-ctl restart 3、修改数据
$ su - gitlab-psql $ /opt/gitlab/embedded/bin/psql -h 127.0.0.1 gitlabhq_production gitlabhq_production=# ALTER USER gitlab WITH SUPERUSER; ALTER ROLE gitlabhq_production=# \q $ exit Gitlab旧服务器迁移新服务器
Ubuntu安装gitlab教程
GitLab 报错 ConnectionBad: could not connect to server: No such…
gitlab备份数据 gitlab项目备份
gitlab安装以及数据迁移