背景:由于需要把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 >&

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

Gitlab安装、备份与恢复的更多相关文章

  1. Gitlab 安装、升级、备份、恢复、汉化等

    一.Gitlab安装 1. 基于yum方式安装Gitlab 安装步骤如下 (1)配置yum源 # vim /etc/yum.repos.d/gitlab-ce.repo (2)复制如下内容并保存(注意 ...

  2. GitLab安装说明

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

  3. Gitlab安装、汉化及使用

    环境:centos 关闭防火墙和selinux [root@Gitlab ~]# setenforce [root@Gitlab ~]# service iptables stop && ...

  4. git\CentOS6.5中gitlab安装教程

    一.Git 起源: Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本 ...

  5. Ubuntu gitlab安装文档及邮件通知提醒配置

    1.安装依赖包,运行命令 sudo apt-get install curl openssh-server ca-certificates postfix 2.由于gitlab官方源可能被“墙”,首先 ...

  6. gitlab安装随记

    gitlab安装 配置yum源 sudo vim /etc/yum.repos.d/gitlab-ce.repo 按照网上别人的例子,修改为清华的源 [gitlab-ce] name=Gitlab C ...

  7. CentOS 7 环境下GitLab安装及基本配置

    新实验室要求重新建设GitLab,对于我来讲,是第一次有机会当元老参与实验室的建设.下面分享我自己的实测经验: 1. 安装依赖软件并设置开机启动 yum install curlpolicycoreu ...

  8. GitLab安装及使用

    GitLab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目. GitLab拥有与Github类似的功能,能够浏览 ...

  9. gitlab之一: gitlab安装配置使用

    参考: gitlab 安装和配置 gitlab下载地址: https://mirror.tuna.tsinghua.edu.cn/gitlab-ce/ 官方教程: https://about.gitl ...

  10. Gitlab安装以及汉化

    Gitlab安装以及汉化 系统环境: CentOS 7.5 IP:192.168.1.2 关闭selinux.firewalld gitlab-ce-10.8.4 rpm包:下载地址 一.下载并安装g ...

随机推荐

  1. Linux之Shell编程(15)

    case: for:   while:

  2. 删除Win10远程桌面中的无用的IP列表

    运行中,输入regedit,然后找到这个位置(也可在任务管理器的地址栏中,直接输入下面的地址),便可删除远程桌面中列出的一些无用的IP地址. 计算机\HKEY_CURRENT_USER\Softwar ...

  3. gsoap工具生成wsdl接口 注意事项

    wsdl是通过wsdl文件作为不同应用的通信接口,所以如何生成wsdl语言很重要,但是很多时候我们发现自己编写的头文件通过gsoap工具soapcpp2.exe从头文件中无法正常生成对应的wsdl语言 ...

  4. Code::Blocks 免安装版本下载及配置

    在编程的时候选择一款好用的IDE非常重要,对于初学者或需要开发项目的程序员来说更为重要,众多的IDE中 Code::Blocks 是一个不错的选择.Code::Blocks开源.版本多,并且还有免安装 ...

  5. SQLAlchemy(1)

    介绍 SQLAlchemy是一个基于Python实现的ORM框架.该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQL,然后使用数据API执行SQL并获取 ...

  6. 201871010109-胡欢欢《面向对象程序设计(java)》第十周学习总结

    201871010109-胡欢欢<面向对象程序设计(java)>第十周学习总结 博文正文开头: 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu- ...

  7. 201871010112-梁丽珍《面向对象程序设计(java)》第八周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  8. 201871010107-公海瑜《面向对象程序设计(java)》第十三周学习总结

    201871010107-公海瑜<面向对象程序设计(java)>第十三周学习总结            项目                      内容   这个作业属于哪个课程   ...

  9. day5_configparser模块

    第一种情况:# 配置文件baidu.ini和当前文件在同一级目录: import configparser conf_read = configparser.ConfigParser() conf_r ...

  10. LG5367 「模板」康托展开 康托展开

    问题描述 LG5367 题解 康托展开公式: \[ans=1+(\sum_{i=1}^{n}{a_i})\times(n-i)!\] 用树状数组维护一下\(\sum\)里面的东西,前缀积维护后面的东西 ...