Gitlab维护记录
目前互联网公司主流的代码仓库统是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
GITLAB下载: https://about.gitlab.com/downloads/archives/
官方文档参考: http://doc.gitlab.com/omnibus/
https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce/
Gitlab维护记录的更多相关文章
- Mac安装GitLab CE记录
0 REF REF1 原始的GitLab Documentation REF2 Installation-guide-for-GitLab-on-OS-X REF3 如何在Mac 终端升级ruby版本 ...
- lnode满,维护记录
df 17% 正常 df -i 100% inode耗尽. | uniq -c 查出占用lnode最大的目录是 /var/spool/exim4/input 居然有15W多个小文件 exim4是邮件 ...
- Gerrit日常维护记录
Gerrit代码审核工具是个好东西,尤其是在和Gitlab和Jenkins对接后,在代码控制方面有着无与伦比的优势. 在公司线上部署了一套Gerrit系统,在日常运维中,使用了很多gerrit命令,在 ...
- Gitlab 维护措施
Gitlab 升级: https://jingyan.baidu.com/article/72ee561ab1b333e16038df63.html Gitlab Rpm包地址: https://pa ...
- git、git-lab学习记录
git: 定义:分布式版本控制工具,类似SVN,区别在于SVN如果网络断了,无法进行版本控制,而git是本地进行版本控制,不多bb了,来个图吧 git常用命令: git add 文件 ...
- gitlab维护之修改clone地址
因为配置了域名访问gitlab私有仓库,但是在项目clone这里,显示的还是ip地址,并且还带端口,每次访问,clone都需要自己修改,比较不方便. 修改方法: sudo vim /opt/gitla ...
- 阿里云 django的一次web维护记录
首先, 丢给我一个阿里云的server的账号/password,之前没有玩过阿里云,想想应该也是ssh服务来远程登陆. 环境: centos+nginx+uwsgi+python2.7+django. ...
- UX168办公本地环境维护记录
上班到公司 1.打考勤靠.或处理考勤异常 2.钉钉 3.邮件. 4.禅道系统 5.开启nginx.node.monogo服务 5.1.开启nginx服务 /etc/init.d/apache2 sto ...
- [原创]CI持续集成系统环境---部署Gitlab环境完整记录
Gitlab是一个代码托管平台,在实际工作中,对代码管理十分有用. 废话不多说,下面是对我自己搭建的Gitlab环境做一记录: (1)安装 ------------------------------ ...
随机推荐
- React入门---开始前的准备(下)-3
React开始前的准备(下): ·配置webpack热加载(热加载就是修改js文件,点击保存之后,浏览器会自动刷新,提高开发效率) 1. 全局安装: npm install webpack -g np ...
- 【JAVAWEB学习笔记】11_XML&反射
解析XML总结(SAX.Pull.Dom三种方式) 图一 XML的解析方式 图二 XML的Schema的约束 反射的简单介绍: 反射 1.什么是反射技术? 动态获取指定类以及类中的内容(成员),并运行 ...
- SQLiteDatabase的使用
新建DBHeler.JAVA package com.hixin.db; import java.util.ArrayList; import java.util.HashMap; import co ...
- LVM学习
LVM Logical Volume Manager Volume management creates a layer of abstraction over physical storage, a ...
- Github+Hexo,搭建专属网站
前言 记得从大二开始,就一直想搭个专属网站,当时使劲抠页面[前端页面是从QQ空间抠的,现在想抠估计没这么容易了],写代码,忙活半天才把程序弄好. 可惜最终项目还是没上线,因为当时有两问题绕不开 需要购 ...
- SparkR安装部署及数据分析实例
1. SparkR的安装配置 1.1. R与Rstudio的安装 1.1.1. R的安装 我们的工作环境都是在Ubuntu下操作的,所以只介绍Ubuntu下安装R的方法 ...
- The dplyr package has been updated with new data manipulation commands for filters, joins and set operations.(转)
dplyr 0.4.0 January 9, 2015 in Uncategorized I’m very pleased to announce that dplyr 0.4.0 is now av ...
- 探讨SQL Server并发处理存在就更新七种解决方案
前言 本节我们来讲讲并发中最常见的情况存在即更新,在并发中若未存在行记录则插入,此时未处理好极容易出现插入重复键情况,本文我们来介绍对并发中存在就更新行记录的七种方案并且我们来综合分析最合适的解决方案 ...
- 【2017-06-01】Linq基础+Lambda表达式实现对数据库的增删改查
一.Linq to sql 类 高集成化的数据库访问技术 使用Linq可以代替之前的Ado.Net.省去了自己敲代码的实体类和数据访问类的大量工作. 实体类: 添加一个Linq to sql 类 -- ...
- 在windows环境下利用virtualenv搭建Python虚拟环境
安装Python 安装时只有一点需要注意,一定一定要将Python添加到系统环境变量那一项勾选. 安装 virtualenv 加入系统目录之后,命令行(CMD)下就多了一条命令:pip.用pip可以自 ...