Gitlab操作手册

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gitlab操作手册相关的知识,希望对你有一定的参考价值。

Gitlab操作手册

1概述
1.1编写目的
本文档主要介绍基于Red Hat Enterprise Linux Server release 6.4 gitlab企业版&社区版服务通用部署规范
1.2软件简介
GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
1.3Gitlab服务构成
技术图片

1.4Gitlab架构图
技术图片
1.5Gitlab工作流程
通过ssh访问gitlab
执行预定义好Git命令→ 调用GitLab Rails API 检查权限→ 执行pre-receive钩子→ 执行请求动作,处理GitLab的post-receive动作

通过http/https 访问gitlab
执行pull
git仓库拉取代码(pull)→GitLab Rails负责处理用户鉴权和执行Git命令的工作

执行push
Git仓库推送(push)代码→GitLab Rails不执行任何动作,交予GitLab Shell处理
↓→调用GitLab Rails API 检查权限→调用GitLab Rails API 检查权限→执行pre-receive钩子→执行请求的动作,处理GitLab的post-receive动作

1.6工作流程图
技术图片

1.7Gitlab工作用户
Gitlab安装后,默认创建5个用户,分别管理不同的模块
技术图片
2基础环境配置准备
2.1硬件要求
技术图片
2.2环境依赖包

技术图片
2.3安装包下载
https://about.gitlab.com/install/
技术图片
技术图片
技术图片
技术图片
技术图片
3部署
3.1 使用yum安装依赖包
[[email protected] ~]# yum install curl git postfix policycoreutils-python -y
3.2 安装rpm包
[[email protected]]#rpm -ivh gitlab-ee11.4.5ee.0.el6.x86_64.rpm
gitlab默认安装路径/opt/gitlab
默认配置文件路径/var/opt/gitlab

需要安装其他路径则以下命令
[[email protected]]#rpm -ivh --prefix=/${安装路径}

rpm包安装自带所有相关组件,不需要单独安装数据库和缓存数据库等
技术图片
3.3 装载配置
[[email protected] ~]# gitlab-ctl reconfigure
以上配置命令执行后,如没有报错,就说明gitlab配置成功。
技术图片
3.4 启动服务
rpm 安装默认以root用户启动,亦可授权给普通用户启动

 启停命令:
 gitlab-ctl start    # 启动所有 gitlab 组件; 
 gitlab-ctl stop     # 停止所有 gitlab 组件; 
 gitlab-ctl restart  # 重启所有 gitlab 组件; 
 gitlab-ctl status   # 查看服务状态;

3.4.1 使用域名访问
访问http://gitlab.example.com
8.8版本之前默认账号 root 密码 5iveL!fe
8.9之后登录web界面会要求更改密码,密码最少为8位!!!

5.4.2 使用IP访问
将以下文件/文件中的gitlab.example.com全部替换为本机IP
[[email protected]]#vim /etc/gitlab/gitlab.rb
[[email protected]]#vim /var/opt/gitlab/gitlab-shell/config.yml
[[email protected]]#vim /var/opt/gitlab/gitlab-rails/etc/gitlab.yml
[[email protected]]#vim /var/opt/gitlab/nginx/conf/gitlab-http.conf

最后执行命令使之配置生效
[[email protected]]#gitlab-ctl reconfigure

重启服务
[[email protected]]#gitlab-ctl restart

3.5 Web界面登陆设置
8.8版本之前默认账号 root 密码 5iveL!fe
8.9之后登录web界面会要求更改密码,注意密码最少8位!!
技术图片
3.6 汉化
(目前汉化在进行中……仅部分页面汉化)
3.6.1获取gitlab汉化包
[[email protected]]#git clone https://gitlab.com/xhang/gitlab.git

3.6.2 查看gitlab版本 diff 获取对应版本的中文补丁
[[email protected]]#head -1 /opt/gitlab/version-manifest.txt
技术图片
5.6.3 进入 clone下来的gitlab目录
[[email protected]]#cd /root/gitlab/
5.6.4 将中文补丁导入gitlab用diff将英文原版与中文版的对比生成.diff文件
[[email protected]]#git diff v11.4.5 v11.4.5-zh > /root/v11.4.5-zh.diff
技术图片
5.6.5 停止服务, 将刚才的diff文件做为补丁导入到gitlab中
[[email protected]]#gitlab-ctl stop
[[email protected]]#patch -d
/opt/gitlab/embedded/service/gitlab-rails -p1 < /root/v11.4.5-zh.diff
一路回车跳过即可!

5.6.6 重新加载配置文件
若访问web出现502 可重新配置 在访问
[[email protected]]#gitlab-ctl reconfigure
5.6.7 启动服务
[[email protected]]#gitlab-ctl start

5.6.8 测试web页面
出现中文登陆页面表示汉化成功
技术图片
4Gitlab 日志文件
日志路径
/var/log/gitlab # 系统Log文件位置
/var/log/gitlab/gitlab-rails/production.log # 页面操作Log
/var/log/gitlab/gitlab-rails/production.log # push代码Log
/var/log/gitlab/application.log # user project 创建删除/var/log/gitlab/gitlab-shell/gitlab-shell.log#分支TAG Commit更新记录
/var/log/gitlab/nginx/gitlab_access.log #nginx 交互Log

查看日志
gitlab-ctl tail # 查看控制台实时的logs;
gitlab-ctl tail gitlab-rails # 读取/var/log/gitlab下子目录的日志
gitlab-ctl tail nginx/gitlab_error.log # 读取某个指定的日志文件

5Gitlab相关配置
5.1主要配置文件
/var/opt/gitlab/git-data/repositories # 默认文件存储路径
/etc/gitlab/gitlab.rb # gitlab主配置文件
/var/opt/gitlab/nginx/conf/gitlab-http.conf # nginx组件配置文件

5.2其他配置文件
gitlab.rb为集成配置,在主配置文件内修改即可,其对应的其它模块里的配置不需要单独修改。执行gitlab-ctl reconfigure重新配置文件,会修改对应相关模块的配置文件使之生效。

Gitlab其他模块配置文件,一般情况不需要修改,主要作用在做模块迁移时,进行独立配置,首先禁用主配置文件gitlab.rb中某个模块,然后针对迁移环境的相关信息,对模块配置文件进行配置。

eg:
更换gitlab自带Nginx服务,使用自行编译Nginx来管理gitlab服务。
vim /etc/gitlab/gitlab.rb...
#设置nginx为false,关闭自带Nginx
nginx[‘enable‘] = false...
检查默认nginx配置文件,并迁移至新Nginx服务

/var/opt/gitlab/nginx/conf/nginx.conf

#nginx配置文件,包含gitlab-http.conf文件/var/opt/gitlab/nginx/conf/gitlab-http.conf
#gitlab核心nginx配置文件

chmod -R o+x /var/opt/gitlab/gitlab-rails

gitlab重新授权

重启 nginx、gitlab服务

gitlab-ctl reconfigure
service nginx restart

这里的nginx是自己搭建的nginx服务

技术图片
5.3Gitlab数据源
Gitlab使用内置postgresql数据库组件,无登陆密码,端口5432使用下列命令登陆并查看数据库信息,
[[email protected]]#su gitlab-psql
[[email protected]]#/opt/gitlab/embedded/bin/psql -h /var/opt/gitlab/postgresql -d gitlabhq_production

查看数据库
技术图片
查看表(共计196张表)
技术图片
5.4Gitlab 默认仓库路径修改
[[email protected]]#vim /var/opt/gitlab/gitlab-rails/etc/gitlab.yml
技术图片
6Gitlab重置root密码

进入gitlab命令目录
[[email protected]]#cd /opt/gitlab/embedded/bin && su git
命令行进入控制台
[[email protected]]#gitlab-rails console production
查询id为1的用户对象(即超级管理员)
irb(main):001:0> user = User.where(id:1).first
确认信息: 信息中看到admin为true,username为root
重置密码
irb(main):002:0>user.password=‘passwd‘

保存密码
irb(main):003:0>user.save!

7数据备份、恢复、迁移
7.1Gitlab数据备份
[[email protected] ~]#gitlab-rake gitlab:backup:create
该命令会备份gitlab仓库、数据库、用户、用户组、用户密钥、权限等信息
在/var/opt/gitlab/backups目录下创建一个名称类似为
1481598919_gitlab_backup.tar的压缩包, 这个压缩包就是Gitlab整个的完整部分。

7.2Gitlab数据恢复

停止相关数据连接服务

[[email protected]]#gitlab-ctl stop unicorn
[[email protected]]#gitlab-ctl stop sidekiq

从指定编号备份中恢复

[[email protected]]#gitlab-rake gitlab:backup:restore BACKUP=1481598919

启动Gitlab

[[email protected]]#gitlab-ctl start

7.3Gitlab数据迁移
迁移要求:gitlab新旧版本号必须保证一致性,精确至小版本号

首先停止相关数据连接服务

[[email protected]]#gitlab-ctl stop unicorn
[[email protected]]#gitlab-ctl stop sidekiq

然后将老服务器/var/opt/gitlab/backups目录下的备份文件拷贝到新服务器上的/var/opt/gitlab/backups即可。

nginx配置文件目录须迁移

/var/opt/gitlab/nginx/conf

gitlab配置文件须迁移,迁移后根据新服务器调整数据存放目录

/etc/gitlab/gitlab.rb

以上是关于Gitlab操作手册的主要内容,如果未能解决你的问题,请参考以下文章

gitlab 权限说明

GitLab安装部署

GitLab

Gitlab代码管理仓库安装部署

GitLab Guide

安装gitlab并汉化