前言
GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。
它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。
团队成员可以利用内置的简单聊天程序(Wall)进行交流。
它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
Git的家族成员
Git:是一种版本控制系统,是一个命令,是一种工具。
Gitlib:是用于实现Git功能的开发库。
Github:是一个基于Git实现的在线代码托管仓库,包含一个网站界面,向互联网开放。
GitLab:是一个基于Git实现的在线代码仓库托管软件,你可以用gitlab自己搭建一个类似于Github一样的系统,一般用于在企业、学校等内部网络搭建git私服。
Gitlab环境部署
ECS配置要求:内存2G以上
手动部署
1. 查看操作系统的信息
[root@ecs ~]# uname -a
Linux ecs 3.10.0-1160.15.2.el7.x86_64 #1 SMP Wed Feb 3 15:06:38 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
镜像地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/ (根据系统版本选择镜像)
2. 配置yum源
[root@ecs ~]# 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
3. 更新本地yum缓存
[root@ecs ~]# yum makecache
4. 安装GitLab社区版
[root@ecs ~]# yum install gitlab-ce #自动安装最新版本
注:若需安装指定版本,则添加版本号即可,即yum install gitlab-ce-x.x.x
5. 启动gitlab组件
gitlab-ctl start
GitLab常用命令
gitlab-ctl start # 启动所有 gitlab 组件;
gitlab-ctl stop # 停止所有 gitlab 组件;
gitlab-ctl restart # 重启所有 gitlab 组件;
gitlab-ctl status # 查看服务状态;
gitlab-ctl reconfigure # 启动服务;(重新加载配置文件,在GitLab初次安装后可以使用,但是在业务环境中不可随意使用,reconfigure会把一些过去的config还原,导致修改的端口以及域名等都没有了。)
vim /etc/gitlab/gitlab.rb # 修改默认的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace # 检查gitlab;
sudo gitlab-ctl tail # 查看日志;
GitLab的使用
1. 输入命令编辑配置文件:vim /etc/gitlab/gitlab.rb
#修改访问URL #格式:external_url 'http://ip:端口' external_url 'http://192.168.80.128:8081'
2. vim /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml修改域名
由于没有DNS服务器,无法进行域名解析,所以需要将域名修改为主机名,进入终端修改一下文件即可。
## GitLab settings
gitlab:
## Web server settings (note: host is the FQDN, do not include http://)
host: ecs
port: 8081
https: false
3. 重置Gitlab(让修改后的配置生效)
gitlab-ctl reconfigure
4. 重启Gitlab
gitlab-ctl restart
5. 防火墙开放指定端口,并生效启用防火墙
6. 访问Gitlab页面
直接输入服务器ip和指定端口进行访问
初始管理员账户: root
注:首次访问时,会自动进入管理员密码设置页面,重新设置下密码,管理员默认账户为root
登录后可进行语言设置:
Settings -> Preferences -> Localization -> Language -> 简体中文
7. 添加用户
当管理员在Gitlab新建用户后,系统会自动发送邮件到用户邮箱,用户通过点击邮件链接可自己配置密码;
ps: 创建用户后,用户将收到邮件,邮件可能被拉黑,请到垃圾邮箱中查阅;
Gitlab权限管理
Gitlab用户在组中有五种权限:Guest、Reporter、Developer、Master(Maintainer)、Owner
Guest:可以创建issue、发表评论,不能读写版本库
Reporter:可以克隆代码,不能提交,QA、PM可以赋予这个权限
Developer:可以克隆代码、开发、提交、push,RD可以赋予这个权限
Master:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心RD负责人可以赋予这个权限
Owner:可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组leader可以赋予这个权限
Gitlab中的组和项目有三种访问权限:Private、Internal、Public
Private:只有组成员才能看到
Internal:只要登录的用户就能看到
Public:所有人都能看到
开源项目和组设置的是Internal