目前已在一台服务器上安装了gitlab 12.8.0,并且稳定运行了有几年了,其上面也创建了大量的项目。目前要求对该gitlab及其上面的所有仓库做一个完整的镜像。具体操作过程如下:
1、确认现有的gitlab的版本号
2、到gitlab官网下载相同版本号的gitlab安装包,下载地址:ubuntu/bionic/gitlab-ce_12.8.0-ce.0_amd64.deb - gitlab/gitlab-ce · packages.gitlab.com
3、在新的服务器上下载安装包:
wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/bionic/gitlab-ce_12.8.0-ce.0_amd64.deb/download.deb --no-check-certificate
4、安装
dpkg -i gitlab-ce_12.8.0-ce.0_amd64.deb
5、对gitlab进行配置
执行:vi /etc/gitlab/gitlab.rb
对external_url进行设置
执行:sudo gitlab-ctl reconfigure ,等待执行完成
6、通过浏览器打开新安装的gitlab
http://ip,端口号默认80,打开后可以设置密码
新服务器上的gitlab安装完成,下面开始镜像原来的gitlab仓库
1、在原gitlab服务器上执行:gitlab-backup create 或者仓库比较大的话,可以在后台执行:nohup gitlab-backup create &
备份成功后,文件放在:/var/opt/gitlab/backups
2、将备份文件 xxx.tar 复制到新服务器:scp xxx.tar user@ip:/var/opt/gitlab/backups
3、在新服务器上执行:chmod a+r 1704341329_2024_01_04_12.8.0_gitlab_backup.tar,增加可读权限。
在新服务器执行还原指令:gitlab-backup restore BACKUP=1704341329_2024_01_04_12.8.0 ,注意结尾没有_gitlab_backup.tar
4、还原完成
5、两行红字说,gitlab.rb和gitlab-secrets.json包含敏感信息,并没有在备份文件中,可以手动将文件从原服务器复制到新服务器上。文件位置在:/etc/gitlab/ 中
6、文件复制过去之后,需要执行:sudo gitlab-ctl reconfigure 进行重新配置
7、完成