学习
实践
活动
工具
TVP
写文章
专栏首页山山仙人的专栏Gitlab备份、迁移、恢复和升级

Gitlab备份、迁移、恢复和升级

自建的Gitlab服务器常常会因为使用时间的增长,其空间容量等硬件需求都需要升级,或者迁移至更高配置的服务器上。备份、迁移、恢复、升级过程如下

1、gitlab备份

备份前gitlab的项目如图所示

备份时需要保持gitlab处于正常运行状态,直接执行gitlab-rake gitlab:backup:create进行备份 使用以上命令会在/var/opt/gitlab/backups目录下创建一个名称类似为1530156812_2018_06_28_10.8.4_gitlab_backup.tar的压缩包, 这个压缩包就是Gitlab整个的完整部分, 其中开头的1530156812_2018_06_28_10.8.4是备份创建的日期

/etc/gitlab/gitlab.rb 配置文件须备份
/var/opt/gitlab/nginx/conf nginx配置文件
/etc/postfix/main.cfpostfix 邮件配置备份

1.1、修改备份文件目录

可以通过/etc/gitlab/gitlab.rb配置文件来修改默认存放备份文件的目录

gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"

修改完成之后使用gitlab-ctl reconfigure命令重载配置文件即可

1.2、设置备份过期时间

[root@gitlab ~]# vim /etc/gitlab/gitlab.rb
gitlab_rails['backup_keep_time'] = 604800		#以秒为单位

1.3、gitlab自动备份

创建定时任务

[root@gitlab ~]# crontab -e
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create

2、gitlab迁移

迁移的整体思路是: 1、在新服务器上安装相同版本的gitlab 2、将备份生成的备份文件发送到新服务器的相同目录下 这里在10.0.0.6的机器上安装了相同版本的gitlab并能正常运行使用

在老服务器上将备份文件发送至新服务器的相应目录下

[root@gitlab ~]# scp /var/opt/gitlab/backups/1530156812_2018_06_28_10.8.4_gitlab_backup.tar root@10.0.0.6:/var/opt/gitlab/backups/

3、gitlab恢复

[root@gitlab ~]# gitlab-ctl stop unicorn		#停止相关数据连接服务
[root@gitlab ~]# gitlab-ctl stop sidekiq
[root@gitlab-new ~]# chmod 777 /var/opt/gitlab/backups/1530156812_2018_06_28_10.8.4_gitlab_backup.tar
#修改权限,如果是从本服务器恢复可以不修改
[root@gitlab ~]# gitlab-rake gitlab:backup:restore BACKUP=1530156812_2018_06_28_10.8.4	
#从1530156812_2018_06_28_10.8.4编号备份中恢复

按照提示输入两次yes并回车

[root@gitlab ~]# gitlab-ctl start #启动gitlab

浏览器访问新服务器的地址进行查看,迁移成功

在实际情况中访问gitlab可能是用域名访问,我们可以修改gitlab配置文件中的url再进行备份,这样就不会影响迁移过程,恢复完成后需要进行的只是修改域名对应的dns解析ip地址

4、gitlab升级

[root@gitlab ~]# gitlab-ctl stop		#关闭gitlab服务
[root@gitlab ~]# gitlab-rake gitlab:backup:create		#备份

下载新版gitlab的rpm包安装,安装时选择升级 安装的过程中可能会出现报错

Error executing action `run` on resource 'ruby_block[directory resource: /var/opt/gitlab/git-data/repositories]'

解决方法为

[root@gitlab ~]# chmod 2770 /var/opt/gitlab/git-data/repositories

安装成功后重新加载配置并启动

[root@gitlab ~]# gitlab-ctl reconfigure
[root@gitlab ~]# gitlab-ctl restart

5、gitlab更改默认的nginx

[root@gitlab ~]# vim /etc/gitlab/gitlab.rb
nginx['enable'] = false		#不启用nginx

检查默认nginx配置文件,并迁移至新Nginx服务

/var/opt/gitlab/nginx/conf/nginx.conf          #nginx配置文件,包含gitlab-http.conf文件
/var/opt/gitlab/nginx/conf/gitlab-http.conf    #gitlab核心nginx配置文件

重启 nginx、gitlab服务

[root@gitlab ~]# gitlab-ctl restart
[root@gitlab ~]# systemctl restart nginx.service

访问可能出现报502。原因是nginx用户无法访问gitlab用户的socket文件。 重启gitlab需要重新授权

[root@gitlab ~]# chmod -R o+x /var/opt/gitlab/gitlab-rails
本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!
本文分享自作者个人站点/博客:https://www.ssgeek.com复制
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • GitLab如何进行备份恢复与迁移?

    首先我们得把老服务器上的Gitlab整体备份,使用Gitlab一键安装包安装Gitlab非常简单, 同样的备份恢复与迁移也非常简单. 使用一条命令即可创建完整的...

    互联网-小阿宇
  • GitLab如何进行备份恢复与迁移?

    首先我们得把老服务器上的Gitlab整体备份,使用Gitlab一键安装包安装Gitlab非常简单, 同样的备份恢复与迁移也非常简单. 使用一条命令即可创建完整的...

    全栈程序员站长
  • gitlab 备份&恢复

    默认 Gitlab 的备份文件会创建在/var/opt/gitlab/backups文件夹中,格式为时间戳_日期_版本号_gitlab_backup.tar,例...

    陈不成i
  • Gitlab的基本使用与备份恢复升级

     使用http方式推送代码每次都需要输入账号密码,所以推荐使用ssh方式推送代码,在Gitlab中添加ssh-key的方式就可以了!

    非著名运维
  • 【GitLab专题】如何进行备份恢复与迁移?

    前段时间,在某台CenterOS服务器上搭建了Gitlab环境,并且大家陆陆续续的都把代码从svn迁移到了gitlab,但是之前的CenterOS服务器并不是...

    open
  • Gitlab备份和恢复操作记录

    前面已经介绍了Gitlab环境部署记录,这里简单说下Gitlab的备份和恢复操作记录: 1)Gitlab的备份目录路径设置 [root@code-server ...

    洗尽了浮华
  • gitlab的备份、恢复

    默认备份出文件的路径,可以通过修改该配置,并执行gitlab-ctl restart 重启服务生效

    匿名用户的日记
  • gitlab备份与恢复

    gitlab-rake gitlab:backup:create  #执行命令备份数据库

    似水的流年
  • gitlab备份与恢复

    1、gitlab备份与恢复 参考:https://docs.gitlab.com/ce/raketasks/backup_restore.html 创建系...

    shaonbean
  • gitlab备份及迁移

    程序员同行者
  • 一键安装Gitlab后的备份、迁移与恢复

    GitLab,是一个使用 Ruby on Rails 开发的开源应用程序,与Github类似,能够浏览源代码,管理缺陷和注释,非常适合在团队内部使用。

    一条老狗
  • GitLab定时备份及恢复

    项目中使用linux服务器作为Gitlab仓储,需要每天自动定时备份(数据备份到windows上),防止服务器磁盘损坏造成数据数据丢失。

    夹胡碰
  • 最新gitlab备份迁移方案

    使用官方迁移方案解决(一个很深的坑,网上有写方案是只是用低版本的,大家最好去官方获取最新的迁移方式。)

    用户8851537
  • Gitlab的备份与升级

    服务器A,已经有四十个仓库的Gitlab当前使用版本8.4.2,但因磁盘空间不足准备进行迁移。在此机器上做备份操作。

    海哥@开发
  • 【Docker】:镜像迁移(备份+恢复)

    使用 docker load 导入 docker save 命令导出的镜像归档文件。

    WEBJ2EE
  • Gitlab备份以及恢复原创

    从 a 服务器迁移到 b 服务器, 由于 Gitlab 自身的兼容性问题,高版本的 Gitlab 无法恢复低版本备份的数据, 需要注意在 b 服务器部署和 a ...

    二丫讲梵
  • gitlab和gitlab项目迁移

    由于版本跨度比较大,不能直接将原gitlab项目备份导出,然后在新gitlab中导入。

    py3study
  • rancher迁移方案-备份与恢复

    针对 rancher 单容器部署方式,如何迁移到新机器上?下面介绍下 rancher 2.5.3 的迁移操作。大致思路是这样:

    机械视角
  • GitLab CE 8.9 升级/迁移到GitLab CE 9.3.4

    这篇文章不记录Gitlab的使用方法,更不说明Gitlab的特性,只记录的升级步骤以及遇到的问题。由于升级的版本跨度有点大,Gitlab本身的备份\还原并不适合...

    知忆

扫码关注腾讯云开发者

领取腾讯云代金券