一.gitlab的备份
1.1 创建备份目录,并授权
1
2
3
4
[root@linux-node1 ~]# mkdir /data/backups/gitlab -p
[root@linux-node1 ~]# chown -R git.git /data/
[root@linux-node1 ~]# ll /data/ -d
drwxr-xr-x 3 git git 20 Dec 20 16:21 /data/
1.2 修改gitlab配置
1
2
3
4
5
6
7
8
9
设置备份路径
[root@7mini-node1 ~]# vim /etc/gitlab/gitlab.rb
201 gitlab_rails['backup_path'] = "/data/backups/gitlab"   #备份路径
204 gitlab_rails['backup_keep_time'] = 604800   #备份7天
 
 
[root@7mini-node1 ~]# mkdir -p /data/backups/gitlab
[root@7mini-node1 ~]# gitlab-ctl reconfigure
[root@7mini-node1 ~]# gitlab-ctl restart

1.3.定时任务备份

1
2
[root@7mini-node1 ~]# crontab -l
0 2 * * *  /usr/bin/gitlab-rake  gitlab:backup:create

1.4.手动执行脚本进行备份

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/usr/bin/gitlab-rake  gitlab:backup:create
Dumping database ...
Dumping PostgreSQL database gitlabhq_production ... [DONE]
done
Dumping repositories ...
 * java/app1 ... [DONE]
 * java/app1.wiki ...  [SKIPPED]
 
[root@7mini-node1 ~]# cd /data/backups/gitlab/
[root@7mini-node1 gitlab]# ls
1525934310_gitlab_backup.tar
[root@7mini-node1 gitlab]# ll
total 80
-rw------- 1 git git 81920 May 10 14:38 1525934310_gitlab_backup.tar
[root@7mini-node1 gitlab]# date -d @1525934310
Thu May 10 14:38:30 CST 2018

1.5 恢复备份

删除gitlab中的app1的项目,再恢复
停止数据写入服务:

1
2
3
4
[root@7mini-node1 ~]# gitlab-ctl stop unicorn
ok: down: unicorn: 1s, normally up
[root@7mini-node1 ~]# gitlab-ctl stop sidekiq
ok: down: sidekiq: 0s, normally up
恢复数据
1
2
[root@7mini-node1 ~]# gitlab-rake gitlab:backup:restore BACKUP=1525934310
[root@7mini-node1 ~]# gitlab-ctl restart

丢失的文件又还原了 

 

二.gitlab迁移

迁移如同备份与恢复的步骤一样, 只需要将老服务器/var/opt/gitlab/backups目录下的备份文件拷贝到新服务器上的/var/opt/gitlab/backups即可(如果你没修改过默认备份目录的话). 
但是需要注意的是新服务器上的Gitlab的版本必须与创建备份时的Gitlab版本号相同.(注意必须相同,否则会出现问题的)

比如新服务器安装的是最新的9.52版本的Gitlab, 那么迁移之前, 可以将老服务器的Gitlab 升级为9.52在进行备份

1
2
/etc/gitlab/gitlab.rb gitlab  配置文件须迁移,迁移后需要调整数据存放目录
/var/opt/gitlab/nginx/conf     nginx配置文件目录须迁移

还原

1
2
3
4
5
6
[root@linux-node1 ~]# gitlab-ctl stop unicorn
ok: down: unicorn: 0s, normally up
[root@linux-node1 ~]# gitlab-ctl stop sidekiq
ok: down: sidekiq: 0s, normally up
[root@linux-node1 ~]# chmod 777 /var/opt/gitlab/backups/1481598919_gitlab_backup.tar
[root@linux-node1 ~]# gitlab-rake gitlab:backup:restore BACKUP=1481598919

  

三.gitlab升级与出现问题解决办法

下载gitlab的RPM包并进行升级

1
2
官网下载最新版本 gitlab对应软件包  [gitlab官网](https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-8.12.13-ce.0.el7.x86_64.rpm)
使用 rpm -Uvh gitlab-ce-8.12.13-ce.0.el7.x86_64

如果直接升级出现如下报错

1
2
3
4
报错.
Error executing action `run` on resource 'ruby_block[directory resource: /var/opt/gitlab/git-data/repositories]'
解决方法:
sudo chmod 2770 /var/opt/gitlab/git-data/repositories

查看版本信息

1
2
[root@localhost backups]# head -1 /opt/gitlab/version-manifest.txt
gitlab-ce 9.5.2

四.gitlab更改默认Nginx

  更换gitlab自带Nginx,使用自行编译Nginx来管理gitlab服务。

编辑gitlab配置文件禁用自带Nignx服务器

1
2
3
4
5
vi /etc/gitlab/gitlab.rb
...
#设置nginx为false,关闭自带Nginx
nginx['enable'] = false
...

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

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

 

重启 nginx、gitlab服务

1
2
gitlab-ctl reconfigure
service nginx restart

出现502报错

1
chmod -R o+x /var/opt/gitlab/gitlab-rails

  

五. gitlab邮箱的配置

1
2
3
4
5
6
7
8
9
10
11
12
126邮件配置:
gitlab_rails['time_zone'] = 'Asia/Shanghai'
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'xiaoming@126.com'  #发件邮箱设置
gitlab_rails['gitlab_email_display_name'] = 'gitlab'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.126.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "xiaoming"
gitlab_rails['smtp_password'] = "your password"
gitlab_rails['smtp_domain'] = "126.com"
gitlab_rails['smtp_authentication'] = "login"

本篇博客转载:https://www.cnblogs.com/jimmy-xuli/p/9019894.html

gitlab的备份与恢复与迁移的更多相关文章

  1. GitLab初识以及代码迁移

    目录 一.理论概述 1.什么是gitlib 2.GitLab服务构成 3.Git对比SVN 二.部署 1.简单操作GitLab 三.项目实践:SVN代码迁移至GitLab 环境 1.Linux下部署S ...

  2. Gitlab备份与恢复、迁移与升级

    0.Gitlab安装 1.安装和配置必要的依赖关系 在CentOS7,下面的命令将在系统防火墙打开HTTP和SSH访问.   yum install curl openssh-server postf ...

  3. Gitlab日常维护(三)之Gitlab的备份、迁移、升级

    一.Gitlab的备份 使用Gitlab一键安装包安装Gitlab非常简单, 同样的备份恢复与迁移也非常简单. 使用一条命令即可创建完整的Gitlab备份 [root@gitlab ~]# gitla ...

  4. gitlab 之 升级、迁移

    -----故事背景- 公司服务器用vm装的虚拟机,由于公司服务器经常无故重启,且找不到原因,所以公司准备将vm迁移至Hyper-V,Hyper-V可以自启动虚拟机且免费. -----升级.迁移- 首先 ...

  5. docker+gitlab的安装和迁移

     docker+gitlab的安装 docker search gitlab docker pull docker.io/gitlab/gitlab-ce docker run --name=: -- ...

  6. gitlab 10.8.1 迁移

    参考官网: https://docs.gitlab.com/ee/raketasks/backup_restore.html    Backing up and restoring GitLab 及 ...

  7. gitlab人备份与恢复

    注意新建备份目录是:/usr/local/src/repositories 属主和属组: # ll -d repositories/ drwx------ git root Feb : reposit ...

  8. 使用terraform 进行gitlab 代码仓库批量迁移

      gitlab 的代码是在文件目录中,这个对于批量迁移很简单,只需要copy 文件夹(但是对于不同gitlab server 可能需要重新设置目录权限) 几个问题 大批量仓库tf resource问 ...

  9. GitLab安装及备份迁移数据

    centos7安装GitLab 下载相应版本rpm包 https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/ 我此处下载9.3.6版本. # w ...

随机推荐

  1. Task 6.4 冲刺Two之站立会议6

    今天对视频的画面质量进行了优化,又把所有的界面更换了一些比较美观的图片和背景.使界面看起来更加地合理,易于接受.

  2. Chapter 9 软件实现

    软件实现包括代码设计.设计审查.代码编写.代码走查.代码编译和单元测试等活动.程序设计语言有很多,从机器语言到高级语言一直发展.软件编码需要遵循一些规范,JAVA代码有适当的空行,代码行及行内空格.分 ...

  3. 使用exe4j将jar包导出为exe

    Exe4J使用方法 此工具是将Java程序包装成exe格式文件工具.(点击exe4j\bin\exe4j.exe文件)启动后如下图所示 如果未注册,则可使用这个注册码:A-XVK209982F-1y0 ...

  4. java 面试 -- 4

    Java面试知识点总结   本篇文章会对面试中常遇到的Java技术点进行全面深入的总结,帮助我们在面试中更加得心应手,不参加面试的同学也能够借此机会梳理一下自己的知识体系,进行查漏补缺(阅读本文需要有 ...

  5. 电梯调度系统(界面由C图形库编绘)

    电梯调度系统编程 1.编程题目 电梯调度. 2.结对编程组员 黄冠译,刘畅. 3.编程语言 C语言图形库. 4.题目要求: 5.代码运行及结果调试: ① 运行界面为C++图形库支持,开始运行的初始界面 ...

  6. 18_集合框架_第18天_集合、Iterator迭代器、增强for循环 、泛型_讲义

    今日内容介绍 1.集合 2.Iterator迭代器 3.增强for循环 4.泛型 01集合使用的回顾 *A:集合使用的回顾 *a.ArrayList集合存储5个int类型元素 public stati ...

  7. Scala入门系列(六):面向对象之object

    object object相当于class的单个实例,类似于Java中的static,通常在里面放一些静态的field和method.   第一次调用object中的方法时,会执行object的con ...

  8. JTS

    在这个系列的 第 1 部分,我们讨论了事务并研究了它们的基本属性 ― 原子性(atomicity).一致性(consistency).孤立性(isolation)和持久性(durability).事务 ...

  9. UTC时间与北京时间

    经常混淆于此,特地研究了一下,记录在此以备忘. 整个地球分为二十四时区,每个时区都有自己的本地时间.在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC, Universal ...

  10. maven在eclipse上的配置

    1,安装maven,配置MAVEN_HOME 和 bin Path环境变量. 2,配置maven setting文件 <mirror>      <id>alimirrorId ...