gitlab迁移
如果gitlab需要迁移到一台新的机器上,大致步骤如下:
- 先停止旧的gitlab不再使用了,然后备份旧的gitlab,备份时间根据数据量大小而定
gitlab-backup create GITLAB_BACKUP_MAX_CONCURRENCY=4 GITLAB_BACKUP_MAX_STORAGE_CONCURRENCY=1 SKIP=tar
参数 GITLAB_BACKUP_MAX_CONCURRENCY 解析
The maximum number of projects to back up at the same time. Defaults to the number of logical CPUs (in GitLab 14.1 and earlier, defaults to 1
参数 GITLAB_BACKUP_MAX_STORAGE_CONCURRENCY 解析
The maximum number of projects to back up at the same time on each storage. This allows the repository backups to be spread across storages. Defaults to 2 (in GitLab 14.1 and earlier, defaults to 1
参数 SKIP=tar
此参数在12.9以后才支持。以前的版本默认会把备份出的文件归档成一个tar包,但很多时候我们想由另外的程序来处理这个过程,所以在12.9之后增加了这个参数,表示不再默认对备份文件进行归档。同理,12.9以前恢复必须有一个tar文件由gitlab来解压,否则提示找不到备份文件,而12.9之后如果不指定tar文件,会自动选定未归档的备份来恢复,也可以指定tar文件名来恢复指定备份
2.备份配置文件,后续需要恢复
/etc/gitlab/gitlab-secrets.json /etc/gitlab/gitlab.rb
3.在新机器上安装同版本的gitlab,并且启动正常
4.把备份传入新机器,然后关闭新机器连接到数据库的进程gitlab-ctl stop puma gitlab-ctl stop sidekiq #verify gitlab-ctl status
5.开始恢复备份
# 注意备份文件放入gitlab.rb的backup_path的路径下,否则找不到备份 gitlab-backup restore BACKUP=xxxxxx # 如果是tar备份文件,则只需要 _gitlab_backup.tar 前面的名称
6.恢复备份后,还原备份文件
/etc/gitlab/gitlab-secrets.json /etc/gitlab/gitlab.rb
7.重新配置gitlab,并且重启
gitlab-ctl reconfigure gitlab-ctl restart
gitlab升级
升级注意事项:
- 升级路径参考地址,禁止跨版本
https://docs.gitlab.com/ee/update/index.html#upgrade-paths
- 建议手动做一次全备,升级过程gitlab会自动并且只备份数据库
- 不需要停服务,但也建议关闭外网访问
- Omnibus版本升级只需要下载rpm包,然后rpm -Uvh即可
- 升级后需要进入管理员后台查看 后台迁移和后台任务 , 确保所有调度都执行完了再升级下个版本,官方推荐是版本之间有几天时间间隔