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

 

参考来源:http://www.xuliangwei.com/xubusi/803.html

Gitlab备份、迁移、恢复和升级的更多相关文章

  1. gitlab备份、恢复、升级

    1.备份 gitlab的备份很简单,只要使用命令: gitlab-rake gitlab:backup:create 即可将当前的数据库.代码全部备份到/var/opt/gitlab/backups ...

  2. Gitlab 备份迁移恢复报错gtar: .: Cannot mkdir: No such file or directory

    1. 版本信息 OS: centos 6.9 Gitlab: gitlab-ce.10.7.4 gitlab-ce.10.8.0 gitlab-ce.10.8.3 gitlab-ce.10.8.4 2 ...

  3. 【linux】【gitlab】gitlab安装、备份、恢复、升级、内存消耗问题

    前言 GitLab:GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务.功能:Gitlab 是一个提供代码托管.提交审核和问题跟踪的代码管理平 ...

  4. 转载:Gitlab备份和恢复操作记录

    转载:Gitlab备份和恢复操作记录 包含了备份和数据恢复的操作记录,实验可行 前面已经介绍了Gitlab环境部署记录,这里简单说下Gitlab的备份和恢复操作记录: 1)Gitlab的备份目录路径设 ...

  5. Gitlab备份和恢复操作记录

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

  6. gitlab备份及恢复

    gitlab备份步骤 https://blog.csdn.net/qq_31666147/article/details/79844107 gitlab版本  下载地址 https://mirrors ...

  7. Gitlab+Jenkins学习之路(四)之gitlab备份和恢复

    gitlab的备份和恢复 (1)创建备份目录,并授权 [root@linux-node1 ~]# mkdir /data/backups/gitlab -p [root@linux-node1 ~]# ...

  8. gitlab 备份和恢复

    前言 gitlab这个代码托管工具真是强大,很多东西都是做好了直接用的. 这里就包括备份和恢复功能. 正文 备份 我们可以直接运行此命令,来进行备份. sudo gitlab-rake gitlab: ...

  9. gitlab备份迁移与升级

    升级计划: https://docs.gitlab.com/ee/update/index.html#upgrade-paths 1. 安装gitlab(和源版本必须保持一致) wget https: ...

  10. Gitlab备份和恢复操作

    参考:https://www.cnblogs.com/kevingrace/p/7821529.html 一,设置开启备份以及备份路径 /etc/gitlab/gitlab.rb gitlab_rai ...

随机推荐

  1. linux下rm命令删除文件名中包含特殊字符的文件【转】

    转自:http://blog.itpub.net/143526/viewspace-1060083/ 1. 删除带“-”的文件名的方法 2. 删除包含其它特殊字符的文件 3. 删除系统打不出的乱码文件 ...

  2. Selenium IDE安装和检查获取的控件路径技巧

    来源:http://www.jianshu.com/p/0ea2dc83549f 从学习Selenium 开始,都是自己写脚本,后来得知有个插件Selenium IDE可以录制脚本,也懒得用了,觉得自 ...

  3. mybatis插入值的时候返回对象的主键值

    mapping文件: <insert id="insert" parameterType="com.vimtech.bms.business.riskproject ...

  4. js向标签中添加文本或其他的简例

    1.如何用js 在div内插入内容? 不是改变内容,而是插入,就是在保留原内容的基础上,在尾部添加.举个例子. 元内容<div>你好</div> 插入后<div>你 ...

  5. Centos下yum update与yum upgrade的区别

    转载来源于:http://www.cnblogs.com/EasonJim/p/9026357.html 说明:生产环境对软件版本和内核版本要求非常精确,别没事有事随便的进行yum update操作! ...

  6. hdu 5178(二分-lower_bound,upper_bound)

    pairs Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  7. 解决Composer 使用时要求输入授权用户名密码问题

    使用Composer下载第三方包时出现: Authentication required (packagist.phpcomposer.com): Username: 解决方法: 1.修改源 comp ...

  8. (一)mysql基础和安装mysql5.7

    (1)数据库系统 RDS:关系型,oracle,mysql,mariaDB,percona server ,DB2 NoSQL:Redis,MongoDB,memcache (2)SQL语言:结构化查 ...

  9. Web.config中appSettings节点值两种读取方法

        <appSettings>    <add key="ClientPort" value="5252"/>   <add ...

  10. 欧拉函数O(sqrt(n))与欧拉线性筛素数O(n)总结

    欧拉函数: 对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目. POJ 2407.Relatives-欧拉函数 代码O(sqrt(n)): ll euler(ll n){ ll ans=n; ...