服务器配置
由于本人没有真实服务器,所以使用VMWare虚拟机进行服务器模拟,以下是服务器的一些配置信息:
- CentOS镜像官网:www.centos.org/download/
- 系统镜像:CentOS-Stream-9-latest-x86_64-dvd1.iso
- 系统内存:4G
- 硬盘大小:50G
- 处理器:4个
安装GitLab服务
- 新建gitlan-ce.repo文件,在/etc/yum.repos.d/目录下,新建gitlab-ce.repo文件,并填写下面内容,这是下载GitLab的镜像源地址。
js
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1
- 更新本地yum缓存
js
yum makecache
- 查询可安装gitlab版本
js
yum list --showduplicates gitlab-ce
- 安装gitlab
js
-- 指定版本安装命令;版本号,例如:16.8.1-ce.0.el7,需要写完整,根据自己需求选择版本
yum install gitlab-ce-版本
-- 最新版本安装命令
yum install gitlab-ce
等待系统自行安装完毕即可。
配置web端、自定义端口及更新配置重启
- 配置web端访问地址
js
1. 编辑 /etc/gitlab/gitlab.rb 文件
2. 找到 external_url 属性,修改访问地址,可IP或域名
补充:默认使用http,如果需要配置https的话,需要自行查阅资料。
- 自定义端口
js
1. 编辑 /etc/gitlab/gitlab.rb 文件
2. 找到 nginx['listen_port'] 属性
3. 修改端口信息
补充:gitlab的web端口默认使用80端口,并且自带nginx代理,可根据需求进行修改端口以及nginx配置
- 更新配置并重启服务
js
sudo gitlab-ctl reconfigure
服务启动成功后,控制台会输出类似以下内容:
js
Running handlers complete
Chef Infra Client finished, ...
gitlab Reconfigured!
web端
- 访问external_url设置的地址进入登录页
初始账号:root
初始密码:在 /etc/gitlab/initial_root_password文件中查看
该密码为临时密码,24小时有效,登录后需重新修改密码

至此,整个GitLab的简单搭建就已经完成;这里面还有一些坑是需要大家自己去填的,比如https要如何配置;nginx要如何配置等。
常见问题
- 无法访问web端口:
- 检查服务器防火墙是否开放端口访问
- 检查服务器防火墙是否开放http与https访问
- 检查gitlab携带的nginx是否正常启动
- 检查external_url是否正确配置
- 首次登录502 Bad Gateway
- 通常是因为gitlab后端服务未完全启动,请等待几分钟再尝试
- 查看日志:sudo gitlab-ctl tail puma 或 sudo gitlab-ctl tail
常用命令
js
sudo gitlab-ctl start # 启动所有 gitlab 组件;
sudo gitlab-ctl stop # 停止所有 gitlab 组件;
sudo gitlab-ctl restart # 重启所有 gitlab 组件;
sudo gitlab-ctl status # 查看服务状态;
sudo gitlab-ctl reconfigure # 启动服务;
sudo vim /etc/gitlab/gitlab.rb # 修改默认的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace # 检查gitlab;
sudo gitlab-ctl tail # 查看日志;
-- 下面是开放防火墙端口与http/https命令
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
-- 如果用了自定义端口,比如 8080:
-- sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
-- CentOS 8+/RHEL 使用 nftables 或直接关闭
sudo systemctl stop firewalld
sudo systemctl disable firewalld -- 禁用防火墙,不建议这么做