gitlab服务器迁移(亲测有效)

描述:最近公司迁移gitlab,我没有迁移过,经过网上查找资料最终完成迁移,途中也遇到挺多坑和两个问题,希望能帮到你。

新服务器安装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

添加 GitLab 仓库

复制代码
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

安装 GitLab 13.6.3

(注意:我的版本是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

备份原gitlab数据

备份配置文件

先备份一下一下两个文件

复制代码
/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)

linux 复制代码
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


替换gitlab-secrets.json文件

将旧服务器/etc/gitlab/gitlab-secrets.json替换新服务器/etc/gitlab/gitlab-secrets.json,注意先提前备份一下新服务器该文件,以免有问题还原。

重启gitlab服务

复制代码
gitlab-ctl restart

问题

在还原过程中遇到两个问题,下面列出问题以及解决方法

问题1

linux 复制代码
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 <top (required)>'
/opt/gitlab/embedded/bin/bundle:23:in `load'
/opt/gitlab/embedded/bin/bundle:23:in `<main>'
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

问题2

linxu 复制代码
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相关配置

linxu 复制代码
# 修改以下配置文件,修改端口监听地址,默认监控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服务

linxu 复制代码
gitlab-ctl restart

3、修改数据

linxu 复制代码
$ 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安装以及数据迁移

相关推荐
IT邦德6 小时前
Dify1.6基于ubuntu系统的部署实战
linux·运维·ubuntu
皮皮蟹虾饺10 小时前
NCCL 源码解析:通信器从出生到消亡的完整一生
linux·人工智能·ubuntu·语言模型·kubernetes
刘梦薇12 小时前
SSH连接失败connection reset解决办法
linux·运维·ubuntu·ssh·腾讯云
winfreedoms2 天前
VMware 桥接模式无法联网:从 DHCPDISCOVER 到静态 IP 的完整排障实战
网络协议·tcp/ip·ubuntu·桥接模式·vmware·嵌入式学习
Jeanyia2 天前
GitLab 配套 Git 常用命令
git·gitlab
静止了 所有的花开2 天前
Ubuntu 26.04 静态 IP 配置不生效解决方法
linux·ubuntu·静态ip
极小狐3 天前
极狐GitLab 补丁版本:19.2.1、19.1.3、19.0.5
网络·安全·gitlab·极狐gitlab·安全更新·补丁版本
桑榆4163 天前
双系统(Windows + Ubuntu)安装流程
linux·windows·ubuntu
sunly_3 天前
TypeScript:3、类型声明与类型推断
javascript·ubuntu·typescript
wengqidaifeng3 天前
1.从“会敲命令”到理解 Linux:15 个基础指令、文件树与命令执行的本质
linux·运维·服务器·ubuntu