• Post author:
  • Post category:gitlab
  • Post comments:0评论

一、介绍

  GitLab是一个开源的代码托管平台,由GitLabInc.开发,使用MIT许可证的基于网络的Git仓库管理工具,且具有wiki和issue跟踪功能。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
  同类代码托管平台还有Github、Gitee,不过它们都是公开,如果想在Github上创建私有仓库是收费的,虽然Gitee可以免费创建私有仓库,但是也有诸多限制。所以我们就可以在企业内部服务器或者云主机自建GitLab,由自己来管控整个代码托管平台。

二、安装

1、获取软件(这里我选择从清华大学源下载)
下载地址:https://mirror.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-13.6.3-ce.0.el7.x86_64.rpm

2、安装软件
[root@gitlab ~]# yum localinstall -y gitlab-ce-13.6.3-ce.0.el7.x86_64.rpm 

3、配置
# 主要是配置邮件(页面设置(个人资料、电子邮件)那里还要进行些操作才能收到邮件)。
# 当然下面配置文件中还有一些地方可能需要配置邮件如报警那里(即prometheus告警插件alertmanager)。
# 就根据实际情况来吧,下面就只配置下域名和邮件,其余就不配置了。

[root@gitlab ~]# vim /etc/gitlab/gitlab.rb
external_url 'http://gitlab.example.com'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "cuipeng_test@163.com"
gitlab_rails['smtp_password'] = "***********"   # 授权码
gitlab_rails['smtp_domain'] = "163.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'cuipeng_test@163.com'
gitlab_rails['gitlab_email_display_name'] = 'Gitlab-Server'

4、启动初始化服务
[root@gitlab ~]# gitlab-ctl reconfigure     # 第一次需要初始化(如果说后续变更配置文件件时候也需要)
# gitlab-ctl -h:查看gitlab服务的一些管理操作(如:start | status | stop | restart)
# gitlab-ctl stop <服务名称>:单独关闭某个服务

5、配置好本地域名解析

三、使用

基本上都是web操作,自行使用。主要是分配好用户、权限、组、项目之间的关系。
一般流程:

 • 创建组。
 • 创建项目,指派属于哪个组。
 • 创建用户,将用户加入组,分配合理权限。

项目中的各种用户权限级别请查看权限表,权限表可以在给用户权限时上面那个了解权限更多消息查看到。
下面简单介绍下用户权限级别对于项目常用操作的限制,具体还是看权限表。对于项目用户一共有五种角色:

 • 访客(Guest):不能读写项目、不能克隆下载项目。
 • 报告者(Reporter):可以clone、pull等,不能push。QA、PM 可以赋予这个权限。 
 • 开发人员(Developer):可以clone、pull、push等,但是无法push master分支,只能 push 自己的分支。普通开发可以赋予这个权限。
 • 维护人员(Maintainer):可以clone、pull、push、操作任何分支及合并等。核心开发可以赋予这个权限。
 • 所有者(Owner):基本拥有项目所有权限。开发组长可以赋予这个权限。

如果开发人员要将自己写好的分支合并到master,就需要推送写好分支,然后向有权限的人员提交合并请求。

四、备份恢复

备份

1、修改备份目录,然后重新加载配置文件
[root@gitlab ~]# vim /etc/gitlab/gitlab.rb
gitlab_rails['backup_path'] = "/data/gitlab/backups"        # 备份存放目录
gitlab_rails['backup_keep_time'] = 604800                   # 保留最近多久的备份

[root@gitlab ~]# gitlab-ctl reconfigure

2、手动执行备份命令
[root@gitlab ~]# gitlab-rake gitlab:backup:create
[root@gitlab ~]# ll /data/gitlab/backups/
total 252
-rw------- 1 git git 256000 Dec 23 22:50 1608781803_2020_12_23_13.6.3_gitlab_backup.tar

# 注意:gitlab.rb和gitlab-secrets.json文件包含敏感数据,不包含在此备份中。您将需要这些文件来还原备份,请手动备份它们。

恢复

1、删除一个项目进行测试,停止服务(确保停止Puma、Sidekiq以及连接到数据库的任何其他进程。测试环境这里我直接停止整个服务了)
[root@gitlab ~]# gitlab-ctl stop

2、恢复
# 通过gitlab-rake命令进行恢复,恢复时需要指定此前备份的名称。(只需要前面唯一的一串数字区分即可,可以不加后面内容)
[root@gitlab ~]# gitlab-rake gitlab:backup:restore BACKUP=1608781803_2020_12_23_13.6.3

3、此时登录gitlab验证项目是否恢复

发表评论

验证码: 61 + = 71