Gitlab从容器迁移到主机

容器虽然很好用,但在某些低配的机器上也会成为性能的瓶颈,gitlab的反应越来越慢,申请了一台中配的主机,打算将gitlab迁移到这台主机独占资源

首选确定现在使用的gitlab版本,在gitlab package中搜索这个版 https://packages.gitlab.com/app/gitlab/gitlab-ce/search,点进去可以找到安装命令,在安装前先装一下依赖

  • 安装依赖
sudo apt-get update
sudo apt-get install -y curl openssh-server ca-certificates
  • 安装上述的搜索结果执行命令,这里已ubutun16.04+gitlab11.4.7为例
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
LC_CTYPE="zh_CN.UTF-8" LC_ALL="en_US.UTF-8"  EXTERNAL_URL="http://gitlab.cf.vk.vu" apt-get install gitlab-ce=11.4.7-ce.0
  • 耐心等待安装完成,安装完成后访问主机ip能打开重置密码界面说明安装完毕,接下来迁移数据库,原来使用mysql数据库,现在打算使用psql。

  • 安装pgloader

pgloader放在postgresql的mirror源中,先添加源

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
sudo apt-get update

安装pgloader,gitlab要去3.4.1+,安装过程中要确认一下是不是3.4.1以上版本

apt-get install pgloader
  • 开始迁移数据库

先关闭gitlab

sudo gitlab-ctl stop

启动unicorn和psql

sudo gitlab-ctl start unicorn
sudo gitlab-ctl start postgresql

创建配置文件

cat >/etc/gitlab/commands.load<<'EOF'
 LOAD DATABASE
      FROM mysql://root:password@192.168.12.157/gitlabhq_production
      INTO postgresql://gitlab-psql@unix://var/opt/gitlab/postgresql:/gitlabhq_production

 WITH include no drop, truncate, disable triggers, create no tables,
      create no indexes, preserve index names, no foreign keys,
      data only

 ALTER SCHEMA 'gitlabhq_production' RENAME TO 'public'

 ;
EOF

开始导入

sudo -u gitlab-psql pgloader /etc/gitlab/commands.load

导入完成后可以看到导入的汇总信息,如果导出出错,google搜索一下相应解决版本

然后将原来的gitlab-secrets.json文件拷到/etc/gitlab中

  • 启动gitlab

导入完成后启动gitlab看看效果

sudo gitlab-ctl start

可以看到数据基本都有了

  • 导入repositories
scp -rpv repositories/ root@192.168.16.139:/var/opt/gitlab/git-data/

导入完成之后重启gitlab

gitlab-ctl restart

耐心等待导入完成,至此大功告成~

VinkDong

open to open