个人心得-搭建GitLab社区版服务器

服务器配置

由于本人没有真实服务器,所以使用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 -- 禁用防火墙,不建议这么做
相关推荐
女王大人万岁18 分钟前
Go标准库 io与os库详解
服务器·开发语言·后端·golang
露天赏雪22 分钟前
Java 高并发编程实战:从线程池到分布式锁,解决生产环境并发问题
java·开发语言·spring boot·分布式·后端·mysql
短剑重铸之日1 小时前
《SpringCloud实用版》 Seata 分布式事务实战:AT / TCC / Saga /XA
后端·spring·spring cloud·seata·分布式事务
FAFU_kyp2 小时前
RISC0_ZERO项目在macOs上生成链上证明避坑
开发语言·后端·学习·macos·rust
qq_12498707532 小时前
基于springboot的会议室预订系统设计与实现(源码+论文+部署+安装)
java·vue.js·spring boot·后端·信息可视化·毕业设计·计算机毕业设计
女王大人万岁2 小时前
Go语言time库核心用法与实战避坑
服务器·开发语言·后端·golang
J_liaty2 小时前
Spring Boot + MinIO 文件上传工具类
java·spring boot·后端·minio
短剑重铸之日3 小时前
《SpringCloud实用版》Stream + RocketMQ 实现可靠消息 & 事务消息
后端·rocketmq·springcloud·消息中间件·事务消息
没有bug.的程序员3 小时前
Spring Boot 事务管理:@Transactional 失效场景、底层内幕与分布式补偿实战终极指南
java·spring boot·分布式·后端·transactional·失效场景·底层内幕
LuminescenceJ3 小时前
GoEdge 开源CDN 架构设计与工作原理分析
分布式·后端·网络协议·网络安全·rpc·开源·信息与通信