背景:由于需要把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. App_Code下类无法引用问题

    App_Code 下创建的.cs文件仅仅是“内容”不是代码.设置文件为“编译”就可正常引用.

  2. Spring Cloud Bus介绍--Spring Cloud学习第七天(非原创)

    一.什么是Spring Cloud Bus二.Spring Cloud Bus之RabbitMQ介绍三.Spring Cloud Bus整合RabbitMQ四.Spring Cloud Bus整合Ka ...

  3. CentOS用yum安装MySQL 8.0 .

    先说一句,fuck,搞了一下午. 步骤:一:安装yum源: 1.wget https://dev.mysql.com/get/mysql80-community-release-el6-3.noarc ...

  4. 谁有好的oracle数据库学习书籍,麻烦提供一下,感激不尽

    作为一个IT人员,想深入学习一下oracle,以前都只是懂基本的语法,CRUD 数据库设计,数据库优化,底层完全不懂,哪位仁兄有好的书籍可以推荐一下,感激不尽.

  5. mysql dump备份 、 mysql还原操作练习

    1.备份mysql.dump 备份MySQL数据库的命令 mysqldump -h主机名 -u用户名 -p密码 数据库名字 > 备份的数据库名字.sql 例子: mysqldump -uroot ...

  6. Redis数据库详解

    NoSQL 若杀死进程应使用pkill 数据设计模式:分布式.非关系型.不提供ACID 特性:简单数据模型.源数据和应用数据分离.弱一致性 优势: 避免不必要的复杂性 高吞吐量, 高 水平扩展能力和低 ...

  7. jmeter引用jar包的3种方式

    示例 实现对登录密码进行MD5加密 pom文件依赖 <!-- https://mvnrepository.com/artifact/commons-codec/commons-codec --& ...

  8. Mysql基础知识--概述和索引

    一.Mysql概述 MySQL原来隶属于MySQL公司,总部位于瑞典 2008.1.16MySQL被SUN公司收购 2009年SUN公司被Oracle公司收购 常见的软件版本 GA(general A ...

  9. 旅游网dao层

    # 注册功能 # 1.根据用户名查询用户 select * from tab_user where username=#{username} # 2.插入注册用户信息 insert into tab_ ...

  10. static inline和inline的区别——stm32实测

    参考:http://armbbs.cn/forum.php?mod=viewthread&tid=95190&extra=page%3D1 对于内联函数,不能像普通函数那样,直接在.h ...