GitLab服务器部署与使用(超详细实操版)
前言GitLab 是基于 Git 打造的完整 DevOps 平台不仅具备 GitHub 类似的代码托管功能还集成了 CI/CD持续集成/持续部署、缺陷跟踪、代码审查、Wiki 文档等一站式企业级开发工具。其核心优势在于支持自托管部署可搭建在内网服务器中有效保障企业代码资产的私密性和安全性是中小型团队及企业实现代码管理与协作的首选工具。本文将从版本选择、环境准备、部署实施到日常运维一步步拆解实操流程全程命令可直接复制执行新手也能快速上手。一、GitLab 版本说明GitLab 主要分为两个版本可根据团队规模和需求选择新手优先推荐社区版企业级需求可考虑企业版升级GitLab CE (Community Edition)社区版开源免费包含代码托管、分支管理、基础协作等核心功能足够满足中小型团队、个人开发者的日常使用需求也是本文实操的核心版本。GitLab EE (Enterprise Edition)企业版在社区版基础上新增高级安全审计、合规性检查、多节点高可用、高级权限管理等企业级特性需要付费购买许可证。提示官方目前推荐即便不付费也优先安装 EE 版——未导入许可证时它会自动降级为 CE 版功能后续若需升级企业版直接导入许可证即可无需重新部署省去重复操作的麻烦。本文实操环境Rocky Linux 9 或 RHEL9 系统root 用户执行全程实操无冗余命令可直接复制。1. 系统准备与硬件要求GitLab 运行需要一定的硬件资源支撑过低配置会导致部署失败或运行卡顿建议配置如下最低要求可适当降低但生产环境不推荐内存建议至少 4GB最低 2GB运行会卡顿不推荐CPU建议 4 核及以上最低 2 核部署和运行速度较慢磁盘至少 20GB 空闲空间用于存储代码、日志、依赖等首先执行系统更新确保系统软件包处于最新状态避免依赖冲突[rootlocalhost data]# dnf update -y2. 安装依赖项GitLab 运行依赖 curl、SSH、邮件服务等基础组件执行以下命令一键安装所有依赖无需手动逐个下载[rootlocalhost data]# dnf install -y curl openssh-server openssh-clients postfix cronie policycoreutils perl依赖说明curl用于下载 GitLab 安装包及相关资源openssh-server/openssh-clients支持 SSH 登录和代码拉取/推送postfix用于发送 GitLab 邮件通知如密码重置、MR 提醒等cronie、policycoreutils、perl提供定时任务、安全策略等基础支撑3. 配置防火墙和SELinuxGitLab 运行需要开放相关端口为避免防火墙和 SELinux 拦截请求推荐直接关闭内网服务器优先选择外网服务器可按需开放端口步骤如下3.1 关闭 SELinux第一步修改 SELinux 配置文件永久关闭 SELinux重启后生效[rootlocalhost data]# vi /etc/selinux/config编辑文件确保以下内容一致将 SELINUX 改为 disabledSELINUXdisabled第二步更新内核参数确保内核引导时不加载 SELinux[rootlocalhost data]# grubby --update-kernel ALL --args selinux0第三步重启系统使 SELinux 关闭生效[rootlocalhost data]# reboot3.2 关闭防火墙推荐执行以下命令停止防火墙并禁用开机自启彻底避免端口拦截[rootlocalhost data]# systemctl stop firewalld [rootlocalhost data]# systemctl disable firewalld3.3 若无法关闭防火墙按需配置若服务器需要开启防火墙可执行以下命令开放 GitLab 所需的 HTTP、HTTPS、SSH 端口无需关闭防火墙[rootlocalhost data]# firewall-cmd --permanent --add-servicehttp [rootlocalhost data]# firewall-cmd --permanent --add-servicehttps [rootlocalhost data]# firewall-cmd --permanent --add-servicessh [rootlocalhost data]# firewall-cmd --reload说明reload 命令执行后端口开放立即生效无需重启防火墙。4. 手动下载 RPM 包并安装 GitLabGitLab CE 的 RPM 包可从官方仓库下载地址为https://packages.gitlab.com/gitlab/gitlab-ce该仓库包含 Amazon、Debian、EL、Ubuntu 等多种系统的安装包可根据自身系统选择对应版本本文以 EL9 版本为例。补充国内服务器可选择清华镜像源下载速度更快镜像地址https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/下载命令示例# 进入下载目录可自定义 cd /data/tools # 下载对应版本的 RPM 包替换为最新版本 wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el9/gitlab-ce-xxx.el9.x86_64.rpm下载完成后执行以下命令安装 RPM 包替换为实际下载的包名[rootlocalhost data]# rpm -ivh gitlab-ce-xxx.el9.x86_64.rpm安装说明安装过程需要 3-5 分钟取决于服务器性能安装完成后会提示配置 external_url无需立即操作后续统一配置。5. 初始化与配置安装完成后需要修改 GitLab 配置文件设置访问地址然后执行初始化配置步骤如下5.1 修改配置文件编辑 GitLab 主配置文件 gitlab.rb设置访问地址替换为服务器 IP 或自定义域名[rootlocalhost data]# vi /etc/gitlab/gitlab.rb找到external_url http://your-ip-or-domain这一行修改为自己的服务器 IP 或域名示例external_url http://192.168.1.100 # 替换为你的服务器IP # 若有域名可改为external_url http://gitlab.example.com保存并退出配置文件vi 编辑器按 Esc输入 :wq 回车。5.2 执行初始化配置执行以下命令GitLab 会根据配置文件自动初始化服务、配置依赖无需手动启动服务[rootlocalhost data]# gitlab-ctl reconfigure初始化说明初始化过程需要 5-10 分钟耐心等待出现 “Chef Client finished, x/xxx resources updated in xx seconds” 即为初始化成功服务会自动启动。6. 获取初始管理员密码以及修改密码6.1 获取初始 root 密码GitLab 安装完成后会自动生成管理员root 用户的初始密码存放在 /etc/gitlab/initial_root_password 文件中注意该文件会在 24 小时后自动删除建议安装完成后立即获取并修改密码。执行以下命令查看初始密码[rootlocalhost data]# cat /etc/gitlab/initial_root_password输出结果中“Password:” 后面的字符串即为初始密码复制保存后续登录使用。6.2 重置 root 密码可选推荐初始密码为随机字符串不便记忆且服务器未配置邮件服务时无法通过邮件重置密码可通过以下命令强制重置 root 密码最快捷方式[rootlocalhost data]# gitlab-rake gitlab:password:reset[root]执行命令后会提示输入两次新密码输入时不显示字符直接输入后回车即可输入完成后密码立即生效。7. 访问与登录配置完成后即可通过浏览器访问 GitLab 页面完成首次登录和基础设置打开浏览器输入之前配置的 external_url如 http://192.168.1.100默认使用 80 端口若配置了 HTTPS 则使用 443 端口。进入登录页面用户名输入root密码输入初始密码或重置后的新密码。首次登录后会提示修改密码若未通过命令重置建议立即修改为易记且安全的密码密码长度至少 8 位包含字母、数字和特殊字符。修改密码后进入 GitLab 主界面即可开始创建项目、添加用户、配置协作等操作。注意若无法访问检查服务器 IP 是否可达、防火墙/SELinux 是否关闭、gitlab 服务是否正常运行可通过后续运维命令查看。二、GitLab 常用运维命令GitLab 服务管理通过 gitlab-ctl 命令实现以下是日常运维最常用的 5 个命令覆盖启动、停止、重启、状态查看、日志查看收藏即可快速调用启动所有 GitLab 服务sudo gitlab-ctl start停止所有 GitLab 服务sudo gitlab-ctl stop查看 GitLab 服务状态可查看所有组件的运行状态排查服务异常sudo gitlab-ctl status重启所有 GitLab 服务修改配置后需重启生效sudo gitlab-ctl restart查看 GitLab 日志排查登录、部署、代码推送等异常按 CtrlC 退出日志查看sudo gitlab-ctl tail三、补充说明新手必看GitLab 核心功能除了代码托管还可使用 Issues缺陷/需求跟踪、Wiki项目文档、CI/CD 流水线自动构建、测试、部署等功能新手可先熟悉代码托管和团队协作再逐步探索高级功能。版本升级后续若需升级 GitLab CE可通过 rpm 包重新安装覆盖安装不丢失数据或通过官方脚本升级。数据备份生产环境建议定期备份 GitLab 数据避免数据丢失备份命令gitlab-rake gitlab:backup:create。权限管理GitLab 权限细分严格新手可先了解访客、开发者、维护者、所有者等角色的权限差异避免误操作。结尾本文详细讲解了 GitLab CE 社区版在 Rocky Linux 9/RHEL9 系统上的完整部署流程从环境准备到日常运维每一步都提供了可直接复制的命令和详细说明适合新手快速搭建 GitLab 服务器。如果部署过程中遇到问题可通过查看日志排查或留言交流。熟练掌握 GitLab 的部署与使用能有效提升团队代码管理效率保障代码资产安全助力企业实现规范化 DevOps 流程。