当前位置: 首页 > article >正文

告别CentOS后,我在Rocky Linux上为小团队搭建私有GitLab的实战记录

告别CentOS后我在Rocky Linux上为小团队搭建私有GitLab的实战记录当CentOS宣布转向Stream版本时我们这个小开发团队面临一个紧迫问题现有的代码托管服务即将失去官方支持。经过几轮技术评估我们最终选择了Rocky Linux作为替代系统并决定在其上部署GitLab社区版。这篇文章将分享我们从系统选型到GitLab部署的完整过程特别关注那些在官方文档中很少提及的实际操作细节。1. 技术选型为什么是Rocky Linux GitLab CE在CentOS停更后RHEL的衍生发行版如雨后春笋般涌现。我们最终选择Rocky Linux主要基于以下考虑二进制兼容性Rocky Linux承诺与RHEL 1:1兼容这意味着我们现有的脚本和工具链几乎无需修改长期支持每个主版本提供10年支持周期完美匹配企业级需求社区活跃度背后有成熟的公司支持同时保持开源社区属性至于代码托管平台GitLab CE版相比其他方案有几个不可替代的优势特性GitLab CE其他方案一体化平台内置CI/CD、Issue跟踪需要额外集成权限管理细粒度团队权限控制功能有限私有化部署完全内网隔离部分依赖公有云社区生态丰富的插件市场生态相对封闭在硬件准备上我们为这台GitLab服务器配置了4核CPU8GB内存100GB SSD存储千兆内网连接提示GitLab对内存较为敏感4GB是最低要求8GB才能保证中型团队流畅使用2. Rocky Linux系统准备与优化2.1 基础系统安装我们从Rocky Linux 9.2的最小化安装开始这是当前最新的稳定版本。安装过程中有几个关键选择分区方案采用LVM便于后期扩容只安装最小化环境减少不必要的服务启用自动安全更新安装完成后首先执行系统更新dnf -y update dnf -y upgrade然后安装基础工具集dnf -y install vim wget curl git lsof net-tools2.2 系统调优为提高GitLab性能我们对系统参数进行了以下调整修改/etc/sysctl.confvm.swappiness 10 net.core.somaxconn 1024 net.ipv4.tcp_fin_timeout 30调整文件描述符限制echo * soft nofile 65536 /etc/security/limits.conf echo * hard nofile 65536 /etc/security/limits.conf配置SSH增强安全sed -i s/#PermitRootLogin yes/PermitRootLogin no/ /etc/ssh/sshd_config echo AllowUsers gitlab-admin /etc/ssh/sshd_config systemctl restart sshd3. GitLab CE部署实战3.1 依赖安装GitLab需要一些基础依赖包dnf -y install postfix cronie policycoreutils-python-utils systemctl enable --now postfix安装开发工具链dnf -y groupinstall Development Tools dnf -y install perl3.2 GitLab安装配置我们选择官方仓库安装最新稳定版curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash dnf -y install gitlab-ce关键配置修改/etc/gitlab/gitlab.rbexternal_url http://192.168.10.100 nginx[listen_port] 8080 gitlab_rails[gitlab_shell_ssh_port] 2222 postgresql[shared_buffers] 256MB应用配置这个过程可能需要5-10分钟gitlab-ctl reconfigure3.3 防火墙设置开放必要的端口firewall-cmd --permanent --add-port{8080/tcp,2222/tcp} firewall-cmd --reload4. 团队协作配置4.1 初始安全设置首次登录后立即修改root密码启用双重认证配置SMTP邮件通知邮件配置示例/etc/gitlab/gitlab.rbgitlab_rails[smtp_enable] true gitlab_rails[smtp_address] smtp.yourdomain.com gitlab_rails[smtp_port] 587 gitlab_rails[smtp_user_name] gitlabyourdomain.com gitlab_rails[smtp_password] yourpassword gitlab_rails[smtp_domain] yourdomain.com gitlab_rails[smtp_authentication] login gitlab_rails[smtp_enable_starttls_auto] true4.2 项目与成员管理我们采用的分组结构infra存放部署脚本和运维文档backend后端服务代码库frontend前端项目mobile移动端应用权限设置要点主程序员Maintainer权限普通开发Developer权限实习生Reporter权限4.3 CI/CD初步配置在项目根目录添加.gitlab-ci.yml示例stages: - build - test - deploy build_job: stage: build script: - echo Building the application - make build test_job: stage: test script: - echo Running tests - make test deploy_job: stage: deploy script: - echo Deploying to staging - make deploy only: - main5. 运维监控与备份5.1 健康状态监控查看GitLab服务状态gitlab-ctl status关键监控指标内存使用确保不超过70%磁盘空间特别是/var/opt/gitlab响应时间首页加载应500ms5.2 备份策略每日全量备份gitlab-backup create备份文件默认存储在/var/opt/gitlab/backups我们额外配置了NFS挂载gitlab_rails[backup_path] /mnt/nfs/gitlab_backups gitlab_rails[backup_keep_time] 604800 # 保留7天5.3 常见问题处理问题1502错误gitlab-ctl restart unicorn gitlab-ctl restart sidekiq问题2磁盘空间不足gitlab-ctl stop rm -rf /var/opt/gitlab/git-data/repositories/hashed/* gitlab-ctl start问题3邮件发送失败gitlab-rails console ActionMailer::Base.deliveries经过三个月的实际运行这套环境表现稳定完全满足了我们15人开发团队的需求。最让我惊喜的是GitLab内置的CI/CD功能它让我们的部署效率提升了近40%。当然也遇到了一些坑比如初期没有限制仓库大小导致磁盘告警后来通过添加钩子脚本解决了这个问题。

相关文章:

告别CentOS后,我在Rocky Linux上为小团队搭建私有GitLab的实战记录

告别CentOS后,我在Rocky Linux上为小团队搭建私有GitLab的实战记录 当CentOS宣布转向Stream版本时,我们这个小开发团队面临一个紧迫问题:现有的代码托管服务即将失去官方支持。经过几轮技术评估,我们最终选择了Rocky Linux作为替代…...

超强APK Installer工具:在Windows上轻松安装安卓应用的最佳解决方案

超强APK Installer工具:在Windows上轻松安装安卓应用的最佳解决方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾经想在Windows电脑上直接运行A…...

Autosar CAN通信实战:从DBC文件配置到代码生成,搞定一个完整信号收发(基于Vector工具链)

Autosar CAN通信实战:从DBC文件配置到代码生成 在车载电子系统开发中,CAN总线作为最常用的车载网络协议,其实现方式直接影响着整车通信的可靠性和实时性。Autosar标准为CAN通信提供了一套完整的软件架构,但如何将理论转化为实际工…...

金属离子对接难题:如何在AutoDock-Vina中正确处理锌蛋白的电荷问题?

金属离子对接难题:如何在AutoDock-Vina中正确处理锌蛋白的电荷问题? 【免费下载链接】AutoDock-Vina AutoDock Vina 项目地址: https://gitcode.com/gh_mirrors/au/AutoDock-Vina AutoDock-Vina作为目前最快速、最广泛使用的开源分子对接引擎&…...

Android 开发问题:WRITE_EXTERNAL_STORAGE is deprecated (and is not granted) when targeting Android 13+.

<uses-permission android:name"android.permission.WRITE_EXTERNAL_STORAGE" />在 Android 开发中&#xff0c;在 AndroidManifest.xml 文件中声明上述权限&#xff0c;出现如下警告信息 WRITE_EXTERNAL_STORAGE is deprecated (and is not granted) when tar…...

终极效率提升:FF14副本动画跳过插件完整指南

终极效率提升&#xff1a;FF14副本动画跳过插件完整指南 【免费下载链接】FFXIV_ACT_CutsceneSkip 项目地址: https://gitcode.com/gh_mirrors/ff/FFXIV_ACT_CutsceneSkip 你是否曾在《最终幻想14》中反复刷副本时&#xff0c;对那些无法跳过的冗长动画感到无奈&#x…...

Samsung三星mlcc片容原厂原装一级代理分销经销批发

品牌 元件类别 型号 描述 包装 数量 SAMSUNG 电容 CL10A105KO8NNNC 0603 1UF 16V 10% X5R 4000 8000,000...

BarrageGrab:15+平台直播弹幕抓取终极指南,无需代理轻松获取实时互动数据

BarrageGrab&#xff1a;15平台直播弹幕抓取终极指南&#xff0c;无需代理轻松获取实时互动数据 【免费下载链接】BarrageGrab 抖音快手bilibili直播弹幕wss直连&#xff0c;非系统代理方式&#xff0c;无需多开浏览器窗口 项目地址: https://gitcode.com/gh_mirrors/ba/Barr…...

小说下载器:200+小说网站一键下载,打造你的专属离线图书馆

小说下载器&#xff1a;200小说网站一键下载&#xff0c;打造你的专属离线图书馆 【免费下载链接】novel-downloader 一个可扩展的通用型小说下载器。 项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader 你是否曾因网络不稳定而无法畅快阅读&#xff1f;是…...

抖音视频批量下载终极指南:3分钟搞定无水印视频收集

抖音视频批量下载终极指南&#xff1a;3分钟搞定无水印视频收集 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support…...

GDPR+等保2.0双压之下,医疗PHP脱敏算法必须重构的7个信号,你中了几个?

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;GDPR与等保2.0双合规框架下的医疗数据脱敏新范式 在跨境医疗协作与多中心临床研究日益频繁的背景下&#xff0c;同时满足欧盟《通用数据保护条例》&#xff08;GDPR&#xff09;的“数据最小化”原则与…...

告别抓瞎!用mping和C代码搞定Windows/Linux组播测试(附TTL设置与排错指南)

跨平台组播测试实战&#xff1a;从工具选型到排错全流程指南 组播技术在现代分布式系统中扮演着关键角色&#xff0c;无论是金融交易系统、物联网设备通信还是媒体内容分发&#xff0c;都依赖高效可靠的组播传输。但实际部署时&#xff0c;开发者常会遇到组播包"神秘消失&…...

终极免费指南:3分钟掌握image2cpp图像转换工具让OLED开发变得简单

终极免费指南&#xff1a;3分钟掌握image2cpp图像转换工具让OLED开发变得简单 【免费下载链接】image2cpp 项目地址: https://gitcode.com/gh_mirrors/im/image2cpp 你是否在为Arduino或Raspberry Pi项目准备OLED显示屏图像而烦恼&#xff1f;image2cpp图像转换工具正是…...

新机到手必做:5分钟搞定ADB环境,安全停用(非卸载)小米14/ vivo X100的预装APP

新机到手必做&#xff1a;5分钟安全停用小米14/vivo X100预装APP指南 刚拿到新手机时的兴奋感&#xff0c;往往会被预装软件带来的困扰冲淡——那些用不上的应用占据着存储空间&#xff0c;时不时弹出广告&#xff0c;却不敢轻易卸载怕影响系统稳定。其实对于小米14和vivo X10…...

E10表单建模免登录扫码设置

...

SRWE终极指南:免费窗口编辑器让你的Windows窗口管理更高效

SRWE终极指南&#xff1a;免费窗口编辑器让你的Windows窗口管理更高效 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 你是否曾因游戏截图分辨率太低而烦恼&#xff1f;或是需要同时调整多个应用程序窗口却找不…...

如何批量处理多个章节的论文降AI:分章节降AI再合并的完整操作教程

如何批量处理多个章节的论文降AI&#xff1a;分章节降AI再合并的完整操作教程 帮三个不同学校的同学处理过论文降AI问题&#xff0c;每次情况不完全一样&#xff0c;但流程基本是固定的。 主推工具&#xff1a;嘎嘎降AI&#xff08;www.aigcleaner.com&#xff09;&#xff0…...

如何快速掌握AriaNg下载管理:面向新手的终极完整指南

如何快速掌握AriaNg下载管理&#xff1a;面向新手的终极完整指南 【免费下载链接】AriaNg AriaNg, a modern web frontend making aria2 easier to use. 项目地址: https://gitcode.com/gh_mirrors/ar/AriaNg AriaNg是一款现代化的Web前端界面&#xff0c;专门为强大的a…...

第七节:RAG 性能进阶——混合检索与 Rerank 重排实战

引言 继上一章完成了基于向量检索的RAG问答机器人搭建后,本章聚焦解决实际应用中遇到的“检索结果不精确”的痛点,探讨如何借助稀疏与密集检索混合策略及重排模型,迈向更高性能的RAG系统。 核心理论 传统的检索技术主要有两种路径: BM25稀疏检索:基于词频和倒排索引,适…...

Unity Mod Manager完全指南:轻松管理你的Unity游戏模组,告别安装烦恼!

Unity Mod Manager完全指南&#xff1a;轻松管理你的Unity游戏模组&#xff0c;告别安装烦恼&#xff01; 【免费下载链接】unity-mod-manager UnityModManager 项目地址: https://gitcode.com/gh_mirrors/un/unity-mod-manager 你是否曾经为安装Unity游戏模组而头疼&am…...

前端性能优化:关键渲染路径优化

前端性能优化&#xff1a;关键渲染路径优化 为什么关键渲染路径这么重要&#xff1f; 关键渲染路径&#xff0c;一个被很多前端开发者忽视的概念&#xff0c;却直接决定了页面的加载速度和用户体验。如果你想让你的页面在用户打开的瞬间就展现内容&#xff0c;而不是让用户盯着…...

季中OTB为什么总是失控:鞋服零售商品企划的核心矛盾与解法

很多鞋服品牌在做季前商品企划时&#xff0c;OTB计划看起来是平衡的——总量控制住了&#xff0c;品类分配合理&#xff0c;交货节奏也排好了。但到了季中&#xff0c;往往会发现实际采购金额已经偏离计划15%以上&#xff0c;有些品类严重超买&#xff0c;有些该追加的爆款却因…...

日活1万的APP,一个月到底能赚多少钱?(附测算公式)

日活1万&#xff0c;广告变现能养活一个团队吗&#xff1f;先来算这笔账“APP日活刚破万&#xff0c;现在想靠广告变现养活团队&#xff0c;是画饼还是可实现的计划&#xff1f;”这是许多开发者在从产品驱动转向商业化的路上&#xff0c;必须直面的灵魂拷问。答案不是一句简单…...

ExplorerPatcher终极指南:深度定制Windows任务栏与开始菜单的完整解决方案

ExplorerPatcher终极指南&#xff1a;深度定制Windows任务栏与开始菜单的完整解决方案 【免费下载链接】ExplorerPatcher This project aims to enhance the working environment on Windows 项目地址: https://gitcode.com/GitHub_Trending/ex/ExplorerPatcher Explore…...

数据工程师必读:如何用ETL构建数据仓库

数据工程师必读&#xff1a;如何用ETL构建数据仓库 业务系统日益复杂&#xff0c;传统的自定义脚本数据抽取方式不仅维护成本高&#xff0c;缺乏调度监控&#xff0c;一旦源表结构变动&#xff0c;整个数据流水线便濒临崩溃。搭建一个稳定、可扩展的数据仓库&#xff0c;不再是…...

突破性技术:Windows原生APK安装架构深度解析

突破性技术&#xff1a;Windows原生APK安装架构深度解析 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 在传统Android应用部署领域&#xff0c;开发者通常依赖模拟器或…...

【Matllab代码】不确定风功率接入下电-气互联系统的分布鲁棒机会约束经济分布式优化调度

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f447; 关注我领取海量matlab电子书和…...

HPH高压均质机内部构造图解

HPH即高压均质机&#xff0c;是制药、食品和化工领域制备微纳米乳液的關鍵设备。它的核心构造并不复杂&#xff0c;但每个部件都直接影响物料的破碎效果。下面我从实际拆解经验出发&#xff0c;带大家看清HPH的几大主要结构。 高压柱塞泵怎么工作 高压柱塞泵作为HPH的动力心脏&…...

Legacy iOS Kit 终极指南:让旧iPhone/iPad重获新生的完整解决方案

Legacy iOS Kit 终极指南&#xff1a;让旧iPhone/iPad重获新生的完整解决方案 【免费下载链接】Legacy-iOS-Kit An all-in-one tool to restore/downgrade, save SHSH blobs, jailbreak legacy iOS devices, and more 项目地址: https://gitcode.com/gh_mirrors/le/Legacy-iO…...

手把手调试802.11ax NDP反馈:用Wireshark抓包分析NFRP Trigger与HE TB NDP的完整对话

802.11ax NDP反馈机制深度解析&#xff1a;从抓包实战到协议细节 在802.11ax(Wi-Fi 6)协议中&#xff0c;NDP(空数据包)反馈报告机制是提升上行资源调度效率的关键创新。这项技术允许接入点(AP)通过触发帧主动获取终端设备(STA)的状态信息&#xff0c;从而做出更精准的资源分配…...