前言

公司代码的管理工具五花八门,一部分人用SVN,一部分人用Git,对于习惯了使用Linux或者Mac命令行的人来说,Git的操作更方便和快捷,进行开会讨论决定整个源码管理全部切换成Git,GitHub需要付费使用,当然也可以选择Gitblit,个人选择使用GitLab,由于公司服务器没有连接外网,所以选择离线安装Gitlab。

简介

GitLab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。通过本教程的学习,可以让你熟悉企业级私库Gitlab的使用。

一、下载安装包

清华大学开源软件镜像站下载地址 :https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
gitlab官网下载地址:https://packages.gitlab.com/gitlab/gitlab-ce 

二、安装Gitlab

2.1 上传安装包rpm

gitlab-ce-13.0.5-ce.0.el7.x86_64.rpm

2.2 使用rpm安装

rpm -ivh gitlab-ce-13.0.5-ce.0.el7.x86_64.rpm

控制台信息

centos7 安装最新git centos7离线安装git_gitlab

2.3 修改访问ip和端口

vi /etc/gitlab/gitlab.rb

centos7 安装最新git centos7离线安装git_gitlab_02

2.4 修改nginx默认端口,避免冲突

centos7 安装最新git centos7离线安装git_centos7 安装最新git_03

2.5 修改数据存储地址

centos7 安装最新git centos7离线安装git_版本管理_04

default:数据主存储路径

alternative:数据存储备份路径

为访问磁盘毁坏丢失源码,故添加数据备份路径。

2.6 常用命令

关闭防火墙

systemctl stop firewalld

启动、停止、加载配置文件

## 启动
gitlab-ctl start

## 重启
gitlab-ctl restart

## 停止
gitlab-ctl stop

## 重新加载配置文件
gitlab-ctl reconfigure

## 查看状态
gitlab-ctl status

## 检查gitlab
gitlab-rake gitlab:check SANITIZE=true

## 查看日志
gitlab-ctl tail 

## gitlab是根据hash值来保存的路径,这个值是项目id,项目id在每个项目的设置页面可以找到
echo -n  22 | sha256sum

设置开机自起和关闭开启自起

## 开机自起
systemctl start gitlab-runsvdir.service

## 关闭
systemctl disable gitlab-runsvdir.service

查看版本号

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

2.7 访问Gitlab

浏览器输入地址:http://172.16.20.101:8060/

默认密码:root/root 第一次登陆强制修改密码

centos7 安装最新git centos7离线安装git_gitlab_05

2.8 数据迁移

如果遇到磁盘满了,需要迁移到别的目录,就需要数据迁移。

创建新数据目录

# 在有空间的磁盘创建目录,然后执行命令,如:
cp -rp /opt/data6/git-data/repositories/@hashed/ /opt/data3/git-data/repositories/

第一个目录是我目前已经被占满的目录,第二个是我新创建的存储目录,一般Gitlab创建的项目,仓库都在@hashed

修改存储目录

centos7 安装最新git centos7离线安装git_gitlab_06

 按顺序执行命令

## 停止
gitlab-ctl stop

## 重新加载配置文件
gitlab-ctl reconfigure

## 添加目录权限
chown -R git.git /opt/data3/git-data/repositor*

## 启动
gitlab-ctl start

2.9 Prometheus 监控配置

gitlab 默认启用 Prometheus,数据存储时长是 15天,经观察磁盘占用较大,建议做配置处理。

直接关闭服务

vim /etc/gitlab/gitlab.rb
prometheus['enable'] = false

设置数据天数,以及数据目录地址

prometheus['flags'] = {
   'storage.tsdb.path' => "/var/opt/gitlab/prometheus/data",
   'storage.tsdb.retention.time' => "15d",
   'config.file' => "/var/opt/gitlab/prometheus/prometheus.yml"
}

保存配置,再重启 gitalb 即可

gitlab-ctl stop
gitlab-ctl reconfigure
gitlab-ctl start