GitLab简介:
GitLab 是一个用于代码托管和软件开发协作的平台,在全球开发者社区及企业中应用广泛,以下是对它的详细介绍:
主要功能
- 代码托管:提供了基于 Git 的代码仓库管理功能,支持创建、克隆、推送、拉取等常见的 Git 操作。开发团队可以方便地将项目代码存储在 GitLab 上,进行版本控制,追踪代码的变更历史,方便团队成员协作开发。
- CI/CD 集成:内置了强大的 CI/CD 功能,通过简单的配置文件(如
.gitlab-ci.yml
),可以定义自动化的构建、测试和部署流程。当代码发生变更时,能够自动触发相应的 CI/CD 任务,实现持续集成、持续交付和持续部署,提高软件开发效率和质量。 - 问题跟踪:具备问题管理系统,团队成员可以创建、分配、跟踪和解决问题。可以为每个问题添加标签、描述、优先级等信息,方便团队对项目中的问题进行管理和跟进,确保问题得到及时处理。
- 代码审查:支持代码审查功能,团队成员可以对提交的代码进行审查,提出意见和建议。通过代码审查,可以提高代码质量,发现潜在的问题和漏洞,促进团队成员之间的知识共享和技术交流。
- Wiki 功能:提供了 Wiki 功能,方便团队记录项目文档、技术规范、操作手册等信息。团队成员可以在 Wiki 中创建和编辑页面,协作编写文档,使项目相关信息更加易于查找和共享。
- 容器镜像仓库:拥有容器镜像仓库,方便用户存储和管理 Docker 等容器镜像。与 CI/CD 流程紧密集成,能够在构建完成后自动将镜像推送到镜像仓库,便于后续的部署和使用。
部署方式
- 公有云版本:GitLab 提供了公有云服务,用户可以直接在 GitLab 官网注册账号,使用在线的 GitLab 平台。这种方式无需用户自己搭建和维护服务器,开箱即用,适合小型团队或个人开发者。
- 私有部署版本:对于对数据安全和隐私有较高要求的企业或组织,可以选择在自己的服务器上进行私有部署。GitLab 提供了多种安装包和详细的安装文档,支持在 Linux、Windows 等多种操作系统上进行部署,用户可以根据自己的需求进行定制化配置。
技术优势
- 开源性:GitLab 是开源软件,其源代码可以免费获取和使用。这使得用户可以根据自己的需求对其进行定制化开发和扩展,同时也受益于全球开源社区的贡献,能够及时获得新功能和 bug 修复。
- 一体化解决方案:集代码托管、CI/CD、问题跟踪、代码审查等多种功能于一体,为软件开发提供了一站式的解决方案。避免了使用多个不同工具带来的集成和协作问题,提高了团队的工作效率。
- 高度可扩展性:具有良好的可扩展性,支持通过插件和集成来扩展其功能。可以与许多其他工具和服务进行集成,如 Slack、Jira 等,满足不同团队的多样化需求。
- 安全性:注重安全性,提供了一系列的安全功能,如用户认证和授权、访问控制、代码扫描等。能够帮助用户保护代码资产的安全,防止数据泄露和恶意攻击。
一、Gitlab安装部署
1、环境准备
1.1、安装相关的依赖
yum -y install policycoreutils openssh-server openssh-clients postfix policycoreutils-python curl
1.2、启动ssh和postfix服务
systemctl enable postfix systemctl start postfix systemctl enable sshd systemctl start sshd
2、GitLab安装
#下载
wgt https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-14.10.5-ce.0.el7.x86_64.rpm
#安装
rpm -ivh gitlab-ce-14.10.5-ce.0.el7.x86_64.rpm

3、端口号配置修改数据存放路径
3.1、配置Gitlab访问的url
#编辑配置文件
vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.72.130:9080'

3.2、配置数据存放的路径
设置 GitLab 的数据存放路径。此处如果不设置,则默认路径为
/var/opt/gitlab/git-data/ 。修改的方法是在文件 gitlab.rb 编写如下代码:(注意:在修改路径前,要将原 GitLab 的数据存放目录下的文件拷贝到新目录中。)

3.3、加载配置重启服务
#加载配置
gitlab-ctl reconfigure
#重新启动Gitlab
gitlab-ctl restart

4、访问测试
浏览器输入:192.168.72.130:9080
出现报错:
gitlab-ctl tail gitlab-ctl tail nginx/gitlab_access.log gitlab-ctl tail nginx/gitlab_error.log less /var/log/gitlab/puma/current

执行 less /var/log/gitlab/puma/current 发现报错:


4.4.1、puma是什么?
在 GitLab 里,Puma 是一款高性能的 Ruby Web 服务器,被用作 GitLab Rails 应用的后端服务器,负责处理来自客户端的 HTTP 请求。下面从其作用、优势、配置和管理等方面为你详细介绍:作用
GitLab 是基于 Ruby on Rails 框架开发的,而 Rails 应用本身不能直接处理 HTTP 请求,需要借助 Web 服务器来实现。Puma 的主要作用就是接收来自客户端(如浏览器)的 HTTP 请求,然后将这些请求转发给 GitLab 的 Rails 应用进行处理,最后把 Rails 应用生成的响应返回给客户端。优势
- 高性能:Puma 采用多线程和多进程的架构设计,能够充分利用多核处理器的性能,同时处理多个请求,有效提升 GitLab 的响应速度和并发处理能力。
- 可扩展性:可以根据服务器的硬件资源和实际的负载情况,灵活调整工作进程和线程的数量,以适应不同规模的用户访问需求。
- 稳定性:具备良好的稳定性和容错能力,能够在高负载情况下保持稳定运行,减少服务中断的风险。
配置
Puma 的配置文件通常位于/var/opt/gitlab/gitlab-rails/etc/puma.rb ,你可以通过编辑这个文件来调整 Puma 的参数设置,常见的配置参数如下:
- 工作进程数量:通过 workers 参数设置,例如:
workers Integer(ENV['PUMA_WORKERS'] || 2)该参数决定了 Puma 启动的工作进程数量,可根据服务器的 CPU 核心数进行调整。
- 线程数量:使用 threads 参数配置,示例如下:
threads Integer(ENV['MIN_THREADS'] || 1), Integer(ENV['MAX_THREADS'] || 16)此参数设置了每个工作进程的最小和最大线程数。
- 监听地址和端口:通过 bind 参数指定,例如:
bind 'tcp://0.0.0.0:8080'
这表示 Puma 监听所有网络接口的 8080 端口。管理
在 GitLab 中,可以使用gitlab-ctl 命令来管理 Puma 服务,常见的操作命令如下:sudo gitlab-ctl status puma
该命令用于查看 Puma 服务的当前运行状态。
- 启动服务:
sudo gitlab-ctl start puma
用于停止 Puma 服务。
- 重启服务:
当修改了 Puma 的配置文件后,可使用此命令重启服务使配置生效。sudo gitlab-ctl restart puma
修改了puma端口之后登录成功

4.4.2、查看密码存放的文件
cat /etc/gitlab/initial_root_password

二、Gitlab使用
1、修改初始密码
步骤一:进入gitlab控制台,查找root账号
gitlab-rails console -e production
步骤二:查看root用户的id
admin_users = User.where(admin: true)
步骤三:重新设置gitlab root账号密码
密码设置成8位才符合git设定的密码强度要求
user = User.find_by(username: 'root')
user.password = 'git@1234'
user.password_confirmation = 'git@1234'
user.save!

2、选择语言



3、创建一个项目

4、Gitlab常见的命令
# 开启,关闭,重启: gitlab组件
gitlab-ctl {start|stop|restart|status}
gitlab-ctl start
gitlab-ctl stop
gitlab-ctl restart
gitlab-ctl status
# 重载配置文件(重新编译gitlab的配置)
gitlab-ctl reconfigure
# 验证配置文件
gitlab-ctl show-config
# 检查gitlab
gitlab-rake gitlab:check SANITIZE=true --trace
# 查看日志
gitlab-ctl tail
gitlab-ctl tail nginx/gitlab_access.log
gitlab-ctl tail nginx/gitlab_error.log
# 常用目录
日志地址:/var/log/gitlab/ # 对应各服务的打印日志
服务地址:/var/opt/gitlab/ # 对应各服务的主目录
5、卸载
停止gitlab
使用命令:gitlab-ctl stop
卸载gitlab(注意这里写的是gitlab-ee)
使用命令:rpm -e gitlab-ee
查看并删除gitlab进程
使用命令:ps -ef | grep gitlab
如果有进程,就杀掉(kill -9 pid),没有的话进行下一步
杀掉后,在使用ps -aux | grep gitlab确认一遍,还有没有gitlab的进程
删除所有包含gitlab的文件
使用命令:find / -name
gitlab | xargs rm -rf
资料参考: