gitlab的搭建(搭建、使用、备份、迁移恢复)

本文章重点介绍如下内容:

1、git、gitlab、github的区别

2、gitlab的搭建

3、gitlab的备份

4、gitlab的迁移及数据恢复

所有的操作建立在centos7.3的环境中搭建,gitlab采用的版本为10.2.2

申请阿里云服务器等产品时,可以使用1000元阿里云代金券,领取网址:http://aliyun.jinre.com

1、git、gitlab、github的区别

和SVN类似,Git是一个版本控制系统(Version Control System,VCS),不同的是SVN为集中式版本控制系统,为单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新,git为分布式版本控制系统,关于SVN和git的对比,可以通过下图进行说明(但最大的区别在于svn为集中式,git为分布式)

这里写图片描述

svn好比一个巨大的图书馆,当你要借一本书的时候,需要先从图书馆借出,回家之后自己改,改完之后还是返回给图书馆,而git的方式完全不同,所有的客户端都一个是完整的版本库,没有中央控制的概念,可以这样类比,git提供了一个虚拟的全量图书馆,所有人都有一个虚拟的图书馆,当你想看其中一本书的时候,从自己的虚拟图书馆里面检索出来即可,如果你修改了其中的内容,可以直接提交到自己的虚拟图书馆里面,也不会影响其他人的图书馆,当有其他人想要看你修改的一本书的时候,你只要将对应的一本书的URL发给对方即可。

关于Git的诞生其实很有趣味性,在早期林纳斯·托瓦兹(Linux之父)面临Linux内核版本控制的问题,在最初,接受采用Bitkeeper进行Linux内核的代码管控,但有一个要求,不允许Linux社区开发人员对Bitkeeper进行破解,但对于追求开源软件的×××们,怎么可能这么听话,就有一个×××开发人员,对Bitkeeper进行了破解,基于之前的要求,Bitkeeper收回的林纳斯使用权,在协商无果的情况下,林纳斯闭关修炼7天,git就这样面试了,大神就是大神

Git是版本控制系统,Github是在线的基于Git的代码托管服务。GitHub是2008年由Ruby on Rails编写而成。GitHub同时提供付费账户和免费账户。这两种账户都可以创建公开的代码仓库,但是付费账户也可以创建私有的代码仓库,如果你在GitHub上面开源自己的项目,那么在面试的时候,这将是一个很大的优势和亮点,别人可以通过你在GitHub的开源项目,可以很好的了解到你的技术水平,同时GitHub上面项目的star越高,说明项目的影响力越大,这个很重要

由于GitHub对于私有的代码仓库是收费的,同时,并不是所有的公司会愿意将自己的项目托管在GitHub上面,因此gitlab就是为了解决这类问题的,gitlab搭建在个人的服务器上面,经过认证的人都可以在上面创建免费的私人repo,并进行多人协作。GitLab让开发团队对他们的代码仓库拥有更多的控制。

2、gitlab的搭建

本文搭建的gitlab是基于yum的方式进行安装的,具体的安装步骤如下:

(1)、配置yum源

vim /etc/yum.repos.d/gitlab-ce.repo
(2)、复制如下内容并保存,注意baseurl的配置是centos7的地址

[gitlab-ce]

name=gitlab-ce

baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/

Repo_gpgcheck=0

Enabled=1

Gpgkey=https://packages.gitlab.com/gpg.ke
如果是centos6的,baseurl修改为

[gitlab-ce]

name=gitlab-ce

baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/

Repo_gpgcheck=0

Enabled=1

Gpgkey=https://packages.gitlab.com/gpg.ke
(3)、更新本地yum缓存

sudo yum makecache
(4)、yum安装gitlab,此处安装版本是10.2.2

sudo yum intall gitlab-ce #自动安装最新版

sudo yum install gitlab-ce-10.2.2 #安装指定版本,此处为10.2.2
注意安装的过程中可能会报如下错误

这里写图片描述

sudo yum install gitlab-ce-10.2.2 –nogpgcheck ####跳过校验
(5)、更改配置

vim /etc/gitlab/gitlab.rb

找到 external_url 'http://000.00.00.00:8081'

修改成你的地址,此处为http://192.168.1.157:8081

(6)、对GitLab进行编译

gitlab-ctl reconfigure
(7)、清除缓存

gitlab-rake cache:clear RAILS_ENV=production
(8)、启动gitlab服务,以及关闭防火墙等操作

sudo gitlab-ctl start # 启动所有 gitlab 组件;并加入开机启动项里面:/etc/rc.local

sudo gitlab-ctl stop # 停止所有 gitlab 组件;

sudo gitlab-ctl restart # 重启所有 gitlab 组件;

sudo gitlab-ctl status # 查看服务状态;

sudo gitlab-ctl tail # 查看日志;
关闭防火墙:

service iptables stop ###centos6关闭防火墙

systemctl stop firewalld.service ###centos7关闭防火墙
(9)、访问gitlab:192.168.1.157:8081,gitlab默认的root账号密码为qazwsxed,首次进入需要修改root密码

3、gitlab的备份

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

gitlab-rake gitlab:backup:create

使用以上命令会在/var/opt/gitlab/backups目录下创建一个名称类似为1481598919_gitlab_backup.tar的压缩包, 这个压缩包就是Gitlab整个的完整部分, 其中开头的1481598919是备份创建的日期

此处以事务的形式进行gitlab的定时备份,创建定时脚本/iyunwen/bin/git_backup/git_backup.sh ,内容如下

!/bin/bash

cd /var/opt/gitlab/backups/

gitlab-rake gitlab:backup:create

find /var/opt/gitlab/backups/ -type f -ctime +5 -exec rm -rf {} \;
加入事务:echo “30 03 * * * root run-parts /iyunwen/bin/git_backup/” >> /etc/crontab

每天3:30分定时备份gitlab版本数据
备份后的数据在/var/opt/gitlab/backups中存在,如下图:

这里写图片描述

4、gitlab的迁移及数据恢复

迁移如同备份与恢复的步骤一样, 只需要将老服务器/var/opt/gitlab/backups目录下的备份文件拷贝到新服务器上的/var/opt/gitlab/backups即可(如果你没修改过默认备份目录的话)
但是需要注意的是新服务器上的Gitlab的版本必须与创建备份时的Gitlab版本号相同. 比如新服务器安装的是最新的10.2.2版本的Gitlab, 那么迁移之前, 最好将老服务器的Gitlab 升级为10.2.2在进行备份

查看gitlab的版本信息如下:

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
(1)、停止gitlab服务

gitlab-ctl stop unicorn

gitlab-ctl stop sidekiq
(2)上传备份文件至/var/opt/gitlab/backups,此处的备份文件名称为:1534793618_gitlab_backup.tar

注意,如果迁移前后的gitlab版本不一致,会报如下错误,所以版本必须要一致

这里写图片描述

(3)、数据恢复

cd /var/opt/gitlab/backups

chmod 777 1534793618_gitlab_backup.tar

gitlab-rake gitlab:backup:restore BACKUP=1534793618
开始恢复的进度如下:

这里写图片描述

恢复完成之后,会提示如下:

可以登录gitlab地址进行验证,所有的数据都做了恢复

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值