GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。GitLab由乌克兰程序员DmitriyZaporozhets和ValerySizov开发,它由Ruby写成。后来,一些部分用Go语言重写,现今并在国内外大中型互联网公司广泛使用。

目录

Gitlab安装

配置yum源

1
2
3
4
5
6
7
8
9
$ vim /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 clean all
$ yum makecache

安装

点击查看Gitlab-ce的版本

1
2
$ yum install gitlab-ce  #自动安装最新版
$ yum install gitlab-ce-x.x.x  #安装指定版本

配置

gitlab配置文件

1
2
3
4
5
$ vim /etc/gitlab/gitlab.rb
......
nginx['listen_port'] = 80  #如果服务器有安装nginx请更改gitlab自带nginx的端口
external_url 'http://gitlab.chepingan.com'  #设置访问域名或IP
......

gitlab-nginx配置文件

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
$ vim /var/opt/gitlab/nginx/conf/gitlab-http.conf
......

server {
  listen *:80;  #端口和域名与gitlab.rb配置文件一致

  server_name lcp.git.lastbs.cn;

   ......
}
......

服务命令

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
$ gitlab-ctl start  #启动所有gitlab组件
$ gitlab-ctl stop  #停止所有gitlab组件
$ gitlab-ctl restart  #重启所有gitlab组件
$ gitlab-ctl status  #查看服务状态
$ gitlab-ctl reconfigure  #启动服务,每次修改gitlab.rb文件后执行
$ gitlab-rake gitlab:check SANITIZE=true --trace  #检查gitlab
$ gitlab-ctl tail  #查看所有日志
$ gitlab-ctl tail nginx/gitlab_access.log  #查看nginx日志
$ gitlab-ctl tail postgresql  #查看数据库日志
$ gitlab-rake gitlab:check SANITIZE=true  #检查gitlab

Gitlab备份

修改配置文件

1
2
3
4
5
6
7
$ vim /etc/gitlab/gitlab.rb
......
gitlab_rails['manage_backup_path'] = true
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"  #gitlab备份目录
gitlab_rails['backup_archive_permissions'] = 0644  #生成的备份文件权限
gitlab_rails['backup_keep_time'] = 604800   #备份保留7天
......

执行备份

备份文件名称格式:时间戳_年_月_日_gitlab版本号_gitlab_backup.tar

1
2
$ gitlab-ctl reconfigure
$ gitlab-rake gitlab:backup:create CRON=1  # 环境变量CRON=1的作用是如果没有任何错误发生时, 抑制备份脚本的所有进度输出

定时备份

1
$ echo '0 5 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1' >> /var/spool/cron/root

Gitlab恢复

在恢复或迁移gitlab时,注意备份的版本和安装的gitlab版本是否一致。

1
2
3
4
$ gitlab-ctl stop unicorn  #停止相关数据连接服务
$ gitlab-ctl stop sidekiq
$ gitlab-rake gitlab:backup:restore BACKUP=xxxxxxxxxx_xxxx_xx_xx_x.x.x  #指定备份文件恢复
$ gitlab-ctl start  #启动所有gitlab组件

Gitlab升级

gitlab的升级不能随意升级,需要根据官方文档的升级路线进行升级。 点击查看官方文档的升级路线

Upgrade paths

1
2
$ yum install gitlab-ce-x.x.x  #安装升级路线依次升级
$ cat /opt/gitlab/embedded/service/gitlab-rails/VERSION  #查看gitlab版本