目前互联网公司主流的代码仓库统是gitlab,类似github的实现,维护gitlab已经有两年多的时间,

下面说一下维护过程中的注意点,以及如何维护更好。

分别是搭建,首先得搭建起来,不然怎么玩,其次是备份、备份、备份,谁也不能保证服务器会不会

突然之间Down掉,为了保险起见,建议所有重要的业务一定要有备份。当然,仅仅有备份还是不够的,

为什么呢?因为你还要做恢复演练测试,假如你的备份数据恢复不了,你备份有个毛用,和没备份是没有

区别的,所以还要验证你备份的数据能否恢复系统。再说一下,备份数据不要放在提供服务的主机上,

不然主机挂了你备份数据是取不出来的,到时候就尴尬了,建议放在专门的备份服务器。

Gitlab搭建

gitlab的搭建目前非常简单了,查看官网就可以搭建,主要是一个rpm包,你装上了就全部就好了,

现在不需要像以前一样一个个的编译了,如果你有兴趣也可以这么做,当然我是不建议的。

下载地址: https://packages.gitlab.com/gitlab/gitlab-ce

1. 安装依赖软件

yum install curl openssh-server openssh-clients postfix cronie
service postfix start
chkconfig postfix on

2.安装方式可以通过下载rpm包或者添加yum源直接安装的方法.

使用清华大学的源:

# 新建 /etc/yum.repos.d/gitlab-ce.repo,内容为
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1

  

# 安装命令
yum install gitlab-ce

3. 配置并启动Gitlab

gitlab-ctl reconfigure

4.登录gitlab并且重置密码.

安装完成后可以通过 http://主机ip 的方式来访问,会输入两次密码,重置的是管理员root的密码.重置完成则可以通过root用户登录进行管理.

GitLab特殊配置

    gitlab安装完成后会有一个默认的存储代码仓库的路径,建议自己自定义到大磁盘上,以免之后磁盘空间引起不必要的麻烦。

1. 配置gitlab的项目代码存储目录为 /data/GitData/git-data/

创建目录 mkdir -pv /data/GitData/git-data/

修改权限 chown git -R  /data/GitData/git-data/

2. 修改配置文件

# /etc/gitlab/gitlab.rb 添加配置:
git_data_dirs({ "default" => { "path" => "/data/GitData/git-data" } })

3. 配置访问的域名.

建议使用域名进行访问,因为使用ip的话不太友好,而且之后换ip后会非常痛苦,相当于所有的使用人员都需要改,这是不能容忍的.

# /etc/gitlab/gitlab.rb 修改配置:
external_url 'http://git.xxxx.com'

4.配置生效

gitlab-ctl reconfigure

  

Gitlab-ctl 使用

查看状态:
sudo gitlab-ctl status; # Start all GitLab components (启动)
sudo gitlab-ctl start # Stop all GitLab components (停止)
sudo gitlab-ctl stop # Restart all GitLab components(重启)
sudo gitlab-ctl restart

  

Gitlab 备份

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

gitlab-rake gitlab:backup:create

使用以上命令会在/var/opt/gitlab/backups目录下创建一个名称类似为1393513186_gitlab_backup.tar的压缩包, 这个

压缩包就是Gitlab整个的完整部分, 其中开头的1393513186是备份创建的日期.

Gitlab 修改备份文件默认目录

你也可以通过修改/etc/gitlab/gitlab.rb来修改默认存放备份文件的目录:

gitlab_rails['backup_path'] = '/mnt/backups'

/mnt/backups修改为你想存放备份的目录即可, 修改完成之后使用gitlab-ctl reconfigure命令重载配置文件即可.

Gitlab 自动备份

也可以通过crontab使用备份命令实现自动备份

加入以下, 实现每天凌晨2点进行一次自动备份:

0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create

 

Gitlab 恢复

同样, Gitlab的从备份恢复也非常简单:

# 停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq # 从1393513186编号备份中恢复
gitlab-rake gitlab:backup:restore BACKUP=1393513186 # 启动Gitlab
sudo gitlab-ctl start

  

Gitlab迁移

迁移如同备份与恢复的步骤一样, 只需要将老服务器/var/opt/gitlab/backups目录下的备份文件拷贝到新服务器上的/var/opt/gitlab/backups

即可(如果你没修改过默认备份目录的话). 但是需要注意的是新服务器上的Gitlab的版本必须与创建备份时的Gitlab版本号相同. 比如新服务器安装

的是最新的7.60版本的Gitlab, 那么迁移之前, 最好将老服务器的Gitlab 升级为7.60在进行备份.

参考文档:

安装文档请参考:   https://about.gitlab.com/downloads/#centos6

使用文档请参考:   http://doc.gitlab.com/omnibus/

Git灾备方法参考: http://segmentfault.com/a/1190000002439923

https://gitlab.com/gitlab-org/omnibus-gitlab/blob/629def0a7a26e7c2326566f0758d4a27857b52a3/README.md#backups

GITLAB下载:     https://about.gitlab.com/downloads/archives/

官方文档参考:   http://doc.gitlab.com/omnibus/

https://docs.gitlab.com/omnibus/settings/configuration.html#storing-git-data-in-an-alternative-directory

https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce/

Gitlab维护记录的更多相关文章

  1. Mac安装GitLab CE记录

    0 REF REF1 原始的GitLab Documentation REF2 Installation-guide-for-GitLab-on-OS-X REF3 如何在Mac 终端升级ruby版本 ...

  2. lnode满,维护记录

    df  17% 正常 df -i 100% inode耗尽. | uniq -c 查出占用lnode最大的目录是 /var/spool/exim4/input 居然有15W多个小文件 exim4是邮件 ...

  3. Gerrit日常维护记录

    Gerrit代码审核工具是个好东西,尤其是在和Gitlab和Jenkins对接后,在代码控制方面有着无与伦比的优势. 在公司线上部署了一套Gerrit系统,在日常运维中,使用了很多gerrit命令,在 ...

  4. Gitlab 维护措施

    Gitlab 升级: https://jingyan.baidu.com/article/72ee561ab1b333e16038df63.html Gitlab Rpm包地址: https://pa ...

  5. git、git-lab学习记录

    git: 定义:分布式版本控制工具,类似SVN,区别在于SVN如果网络断了,无法进行版本控制,而git是本地进行版本控制,不多bb了,来个图吧 git常用命令: git add 文件          ...

  6. gitlab维护之修改clone地址

    因为配置了域名访问gitlab私有仓库,但是在项目clone这里,显示的还是ip地址,并且还带端口,每次访问,clone都需要自己修改,比较不方便. 修改方法: sudo vim /opt/gitla ...

  7. 阿里云 django的一次web维护记录

    首先, 丢给我一个阿里云的server的账号/password,之前没有玩过阿里云,想想应该也是ssh服务来远程登陆. 环境: centos+nginx+uwsgi+python2.7+django. ...

  8. UX168办公本地环境维护记录

    上班到公司 1.打考勤靠.或处理考勤异常 2.钉钉 3.邮件. 4.禅道系统 5.开启nginx.node.monogo服务 5.1.开启nginx服务 /etc/init.d/apache2 sto ...

  9. [原创]CI持续集成系统环境---部署Gitlab环境完整记录

    Gitlab是一个代码托管平台,在实际工作中,对代码管理十分有用. 废话不多说,下面是对我自己搭建的Gitlab环境做一记录: (1)安装 ------------------------------ ...

随机推荐

  1. c# .net core 下的网络请求

    本文章是在VS2017的环境下,.net core 1.1版本以上. 在这期间,由于.net core 并不基于IIS,我们的过去的网络请求代码在.net core框架下,有可能会出现不兼容,报错的现 ...

  2. C# MVC权限验证

    前言 之前一直没怎么接触过权限验证这块,刚好公司老平台改版,就有了这篇权限验证.此篇文章大致讲解下 精确到按钮级别的验证如何实现.以及权限验证设计的参考思路(菜鸟一枚,大神勿喷). 在开发大项目的时候 ...

  3. Error getting nested result map values for 'company'. Cause: java.sql.SQLException: Invalid value for getInt() - 'NFHK188'

    我今天遇到一个我不解的问题,是mybatis多对一关系查询出问题了,但是我自己还是解决了,在网上也查过那个错误,可是找不到我想要的.不知道你们遇到过没有,我接下来分享给大家.希望我这个第一篇博客能帮助 ...

  4. python爬虫从入门到放弃(六)之 BeautifulSoup库的使用

    上一篇文章的正则,其实对很多人来说用起来是不方便的,加上需要记很多规则,所以用起来不是特别熟练,而这节我们提到的beautifulsoup就是一个非常强大的工具,爬虫利器. beautifulSoup ...

  5. pythion 第二弹

    ################################第二节################################################python中数据类型的常见的方法 ...

  6. FFmpeg安装(windows环境)

    ♣FFmpeg是什么? ♣FFmpeg组成 ♣下载工具 ♣安装FFmpeg ♣应用到j2ee项目 前言:学习视频编码,一定要知道雷霄骅(leixiaohua1020)的专栏 ,伟大的程序员,26岁去世 ...

  7. pc网页到移动端怎么自动加载适应移动端的css。

    1.通过link标签判断加入 以前听说过在link标签中加media = "handheld",但这个用到安卓或苹果都不管用,后来尝试以下方法,是管用的. <link hre ...

  8. 纯css实现横向下拉菜单

    自己最近在捣腾css代码,不光是js能做很多有趣的东西,这货也可以做很多东西,现在把自己的一些作品分享给大家. 做得有点粗糙,大家根据这个思路来,可以自己修改修改. 关于demo:这是一个横向下拉的菜 ...

  9. APP热更新方案

    为什么要做热更新 当一个App发布之后,突然发现了一个严重bug需要进行紧急修复,这时候公司各方就会忙得焦头烂额:重新打包App.测试.向各个应用市场和渠道换包.提示用户升级.用户下载.覆盖安装. 重 ...

  10. 第4章 ext文件系统机制

    本文目录: 4.1 文件系统的组成部分 4.2 文件系统的完整结构 4.3 Data Block 4.4 inode基础知识 4.5 inode深入 4.6 单文件系统中文件操作的原理 4.7 多文件 ...