gitlab迁移

备份

创建备份,注意两个服务器上gitlab都准备好,版本要一样

gitlab备份

[root@localhost ~]# gitlab-rake gitlab:backup:create在这里插入图片描述

使用scp将备份好的文件放到新服务器里

配置文件备份

将gitlab的一些配置文件备份
1./etc/gitlab/gitlab.rb:该文件配置了gitlab的域名、邮件发送信息、白名单等相关信息。
2./etc/gitlab/gitlab-secrets.json:该文件存储了gitlab的db secret信息。
3./var/opt/gitlab/nginx/conf: nginx配置文件
4./etc/postfix/main.cfpostfix 邮件配置备份(可能没有,不影响)
为了安全,在新服务器上备份上面文件后,在将这些文件放到新服务器相应目录下

恢复

从备份文件中恢复gitlab

1、将备份文件权限修改为777

修改权限,不然在恢复的时候会出现权限不够的问题
[root@localhost backups]# chmod 777 1566641943_2019_08_24_10.0.2_gitlab_backup.tar

2、执行命令停止相关数据连接服务

停止相关数据连接服务,防止出现问题
[root@localhost backups]# gitlab-ctl stop unicorn
ok: down: unicorn: 1s, normally up
[root@localhost backups]# gitlab-ctl stop sidekiq
ok: down: sidekiq: 1s, normally up

3、执行命令从备份文件中恢复Gitlab

gitlab-rake gitlab:backup:restore BACKUP=备份文件编号
例如我们的备份文件的编号是1566641943_2019_08_24_10.0.2,因此执行下面的命令即可恢复gitlab
[root@localhost backups]# gitlab-rake gitlab:backup:restore BACKUP=1566641943_2019_08_24_10.0.2
出现第一个选项
问你是否要继续,选择yes

[root@localhost backups]# gitlab-rake gitlab:backup:restore BACKUP=1566641943_2019_08_24_10.0.2
Unpacking backup ... done
Before restoring the database we recommend removing all existing
tables to avoid future upgrade problems. Be aware that if you have
custom tables in the GitLab database these tables and all data will be
removed.

Do you want to continue (yes/no)? yes

image.png
然后出现第二个选项继续选yes,如下图所示

Put GitLab hooks in repositories dirs [DONE]
done
Restoring uploads ... 
done
Restoring builds ... 
done
Restoring artifacts ... 
done
Restoring pages ... 
done
Restoring lfs objects ... 
done
This will rebuild an authorized_keys file.
You will lose any data stored in authorized_keys file.
Do you want to continue (yes/no)? 

image.png
然后可以看到恢复完成,如下图所示

image.png

启动

为了防止意外,先进行gitlab-ctl reconfigure,然后在启动gitlab

[root@localhost backups]# gitlab-ctl start
ok: run: gitaly: (pid 20345) 269239s
ok: run: gitlab-monitor: (pid 20380) 269238s
ok: run: gitlab-workhorse: (pid 20420) 269238s
ok: run: logrotate: (pid 10651) 2835s
ok: run: nginx: (pid 20460) 269237s
ok: run: node-exporter: (pid 20477) 269236s
ok: run: postgres-exporter: (pid 20501) 269236s
ok: run: postgresql: (pid 20511) 269235s
ok: run: prometheus: (pid 21568) 183387s
ok: run: redis: (pid 20575) 269233s
ok: run: redis-exporter: (pid 20580) 269233s
ok: run: sidekiq: (pid 19871) 0s
ok: run: unicorn: (pid 19878) 0s

image.png
启动完成,访问设置的域名就可以进行访问了
可以看到所有项目都在新服务器上和原本的一样,迁移完成

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐