背景:由于需要把gitlab从A服务器转移到B服务器,故在B服务器进行gitlab的安装和恢复备份

步骤:

一、在B服务器安装Gitlab

1. 获取安装包

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-7.10.4~omnibus-1.x86_64.rpm

2. 安装

rpm -i gitlab-ce-7.10.4~omnibus-1.x86_64.rpm

3. 修改配置文件(修改端口号、域名、数据路径、备份路径、禁用gitlab自带的nginx)

vim  /etc/gitlab/gitlab.rb

#修改端口
unicorn['port'] =
#修改域名
external_url 'http://gitlab.abc.com'
#数据存放路径
git_data_dir "/data/gitlab/git-data"
#备份路径
gitlab_rails['backup_path'] = "/data/gitlab/backups"
#禁用自带的nginx(如果使用自带的则设置为true, 因为我的B服务器已经有nginx在运行,故不使用自带的)
nginx['enable'] = false

4. 使配置生效

gitlab-ctl reconfigure

5. 启动gitlab

gitlab-ctl restart

==============nginx['enable'] = false 时配置 6,7步===============

6. 配置nginx使域名能访问到gitlab

upstream gitlab {
server unix://var/opt/gitlab/gitlab-rails/sockets/gitlab.socket;
} server {
listen ;
server_name gitlab.abc.com;
access_log /data/logs/nginx/access_gitlab.abc.com.log main buffer=1k; location / {
proxy_pass http://127.0.0.1:8088;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 600s;
client_max_body_size 1024m;
}
}

7. 重启nginx

/opt/tengine/sbin/nginx -s reload

==============nginx['enable'] = false 时配置 6,7步===============

8. 访问域名,确认安装成功

二、备份A服务器的gitlab数据

1. 备份命令

gitlab-rake gitlab:backup:create

2. 把备份生成的文件拷贝到B服务器的gitlab备份目录下(拷贝到其他目录无法完成恢复)

scp 1574279663_gitlab_backup.tar root@B服务器IP:/data/gitlab/backups/

三、B服务器恢复Gitlab备份数据

1. 停止相关数据连接服务

gitlab-ctl stop unicorn

gitlab-ctl stop sidekiq

2. 执行恢复备份命令(注意BACKUP后面接着备份文件的前缀即可, gitlab会自动加上 _gitlab_backup.tar 部分)

gitlab-rake gitlab:backup:restore BACKUP=1574279663

3. 恢复完毕后,重启gitlab

gitlab-ctl restart

4. 访问B服务器的Gitlab地址 http://gitlab.abc.com,确认数据已经恢复成功

四、配置B服务器的每日定时备份

1. 创建脚本文件

touch /data/gitlab/backups/gitlab_backup.sh

2. 编辑脚本文件

vim /data/gitlab/backups/gitlab_backup.sh

加入如下内容: (注意:环境变量CRON=1的作用是如果没有任何错误发生时, 抑制备份脚本的所有进度输出)

#!/bin/bash
/usr/bin/gitlab-rake gitlab:backup:create CRON=

3. 增加执行权限

chmod u+x /data/gitlab/backups/gitlab_backup.sh

4. 修改定时任务

crontab -e

加入如下内容(每天凌晨两点备份)

  * * * sh /data/gitlab/backups/gitlab_backup.sh > /dev/null >&

完毕~~~~~~~~~~

最新文章

  1. 转载:css3 content 生成内容
  2. I帧 B帧 p帧 IDR帧的区别
  3. C/C++ 中的指针
  4. 第一篇 Replication:复制简介
  5. [sinatra] Sinatra再入门
  6. PMP考试的过与只是
  7. 【转】Mac访问Windows共享文件夹
  8. bootstrap插件学习-bootstrap.dropdown.js
  9. Memcached 学习笔记(二)——ruby调用
  10. S3C2440触摸屏驱动详解
  11. Java的多态及注意事项
  12. python性能:不要使用 key in list 判断key是否在list里
  13. Linux TCP 连接数
  14. Mac Hadoop的安装与配置
  15. For循环语句解析
  16. 阿里云mysql数据库设置让公网访问客户端访问
  17. urlparse 用法
  18. macOS 10.14 Mojave Apache设置:多个PHP版本
  19. markdown中设置、调整图片尺寸
  20. activiti--4----------------------------------流程变量

热门文章

  1. C 输入和输出、char类型
  2. 基础系列(2)--- css1
  3. Qt导航栏 QListWidget
  4. 【转】合并两个List并去掉重复项
  5. flink 并行计数器实现
  6. AI 的架构与核心
  7. linux 互斥锁和条件变量
  8. spring boot jsp里面的静态资源访问不到解决办法
  9. Python从零开始——字符串String
  10. Axel多线程工具安装