centos7 gitlab私有化部署搭建 踩坑之旅

发布于:2025-08-06 ⋅ 阅读:(12) ⋅ 点赞:(0)

CI/CD 选择

起初我是想让gitee上的代码能够持续集成、持续交付,所以尝试使用gitee 流水线,但遇到了不可解决的问题;想到对gitlab比较熟悉,尝试使用gitlab saas版,但只能试用90天;对github的流水线不熟悉;jenkins 是想着等gitlab CI/CD能力不够用了再用;最终选择了私有化部署搭建gitlab 。

gitee遇到的问题(纯吐槽,跳过)

  • yml文件进行了格式规定,部分写法无法识别,写错了保存才能看到错误提示;和gitlab的yml语法不同

  • 可视化编排支持能力有限,比如邮件不能发送到qq邮箱,指定分支代码提交commit包含关键字打tag也不支持,自定义脚本想做这件事也遇到许多问题:指定镜像跑脚本失败,不知道是为什么,日志也输出失败;尝试连接虚拟机跑脚本,虚拟机在线,显示离线,也找不到原因;

  • 最重要的:运行一个简单的demo echo "hello world"都跑不起来,运行失败;日志也看不到

虚拟机系统选择

官网提供各种linux系统、docker等安装方式:GitLab下载安装_GitLab安装和配置_GitLab最新中文官网免费版下载-极狐GitLab

注意:gitlab很大,要求虚拟机内存在4GB以上,不然会出现部分服务无法正常启动,页面访问失败或者502的情况

个人遇到的问题(废话,可跳过)

我先是在ubuntu上按照官网安装,安装失败了,主要原因是内存不够;但由于我已经给ubuntu很大的内存了,不想再给,就放弃ubuntu安装了。内心os:ubuntu系统本身很大,而且数据不持久化,很多在tmp文件下,对内存占用也很高,所以我不倾向使用它。

我没有选择docker安装,因为docker安装每次要启动,而且由于我用docker做实验,常清空镜像和容器,容易误操作。

我选择centos7,又小、数据又持久化、虚拟机开机就启动了gitlab,感觉很好。but 由于centos不再维护,gitlab也不再维护centos系统的了,所以最高只有17.x的gitlab,有问题不能升级了。由于我只是学习使用,那就这样吧(…再爱都曲终人散了,那就分手吧,再巴拉巴拉也无需挣扎~)

我之所以只考虑这三个,是因为我电脑上已经安装过这三个了。没有安装系统的同学可以自己选择,想用centos可以考虑AlmaLinux。

centos7 安装gitlab

前提

我开了翻墙vpn,听说不开很慢的,gitlab 安装教程 - Ping&小站 这篇文章给了国内镜像,需要的同学记得配一下

下载gitlab安装包

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
# 查看版本列表
yum --showduplicates list gitlab-ce
# 指定下载版本
sudo yum install -y gitlab-ce-17.7.7-ce.0.el7
sudo yum install -y gitlab-ce

修改配置

编辑/etc/gitlab/gitlab.rb修改external_url为虚拟机ip,默认端口为80;如果不使用80端口(比如80端口被其他服务占用 netstat -tulpn | grep 80 检查端口),需要指定端口

在这里插入图片描述

# 编辑/etc/gitlab/gitlab.rb文件
vim /etc/gitlab/gitlab.rb
# 修改配置后 重启配置(会修改相应服务的配置文件、重启受影响的服务)
gitlab-ctl reconfigure
# 重启所有服务 // 没有修改配置,但需重启gitlab服务时使用restart,比如许多服务运行失败了;如果只有某个服务运行失败,可以单独重启那个服务
# gitlab-ctl restart 

检查状态

# 检查gitlab运行状态,若存在未运行成功服务,要单独去启动
gitlab-ctl status
# 检查端口正常启动,没被其他服务占用
netstat -tulpn | grep 80

在这里插入图片描述

在这里插入图片描述

访问gitlab服务

运行成功后,在浏览器中输入IP:端口访问gitlab,gitlab首次启动可能需要等待几分钟才能启动成功;gitlab浏览器页面默认每隔5s访问一次服务是否启动成功。

在这里插入图片描述

获取密码

gitlab可访问时,页面如图

在这里插入图片描述

跑完gitlab-ctl reconfigure命令时,最后面会有一行提示,如图

在这里插入图片描述

第一次登录密码在/etc/gitlab/initial_root_password中,需要尽快登录修改密码,密码24小时后会被删除

修改密码

在这里插入图片描述

问题排查

gitlab启动后,浏览器无法访问:确认防火墙允许指定端口通过

如果使用的不是默认的80的端口,需要确认防火墙是否开启;如果防火墙开启,需要允许指定端口通过。

注意: 指定端口时,需要确认是否存在端口占用的情况;比如:指定端口上是否已运行服务;指定端口是否会阻塞gitlab其他服务的运行,如gitlab中的puma运行在8080端口,如果指定访问端口是8080,会阻塞puma服务,导致服务无法运行。

# 查看防火墙状态
systemctl status firewalld
# 允许防火墙通过8888端口
firewall-cmd --add-port=8888/tcp --permanent
# 重新加载防火墙规则
firewall-cmd --reload 

gitlab启动后,页面长时间502,常见原因:内存不足

502 最大可能是内存不够 部分核心服务没启动好,gitlab要求至少有4GB内存

步骤一:查看剩余内存,如果剩余太少,比如小几百,需要扩容
free -m

在这里插入图片描述

步骤二:扩容

在这里插入图片描述

步骤三:重启服务

由于没有修改配置,直接重启gitlab服务,无需重启配置

gitlab restart

权限不足,服务无法启动

在这里插入图片描述

普通用户不加sudo无法启动gitlab;或者切换管理员用户启动

# 切换管理员账号
su -

相关资料

其他安装方式,比如docker安装、ubuntu安装详见官网和相关资料

gitlab搭建教程:https://halo.blog360.sbs/archives/wei-ming-ming-wen-zhang

视频教程:手把手搭建企业级GitLab服务器!零基础保姆教程 | 避坑指南+更新维护+无公网IP线上发布_哔哩哔哩_bilibili


网站公告

今日签到

点亮在社区的每一天
去签到