【Linux】Rocky Linux 清华镜像源快速部署 GitLab 全攻略
1. 为什么选择Rocky Linux清华镜像源部署GitLab最近在帮团队搭建私有代码仓库时我对比了多个方案后发现Rocky Linux配合清华镜像源简直是国内开发者的黄金组合。Rocky Linux作为RHEL的完美替代品不仅继承了企业级稳定性还完全免费。而清华镜像源在国内的下载速度能轻松跑满带宽实测安装GitLab时速度比官方源快10倍不止。记得第一次用官方源安装时光是下载1GB的安装包就花了半小时中途还经常断连。换成清华镜像源后同样的操作3分钟搞定这种体验就像从绿皮火车换成了高铁。对于需要频繁部署测试环境的中小团队这个组合能节省大量等待时间。2. 环境准备与依赖安装2.1 系统基础配置首先确保你的Rocky Linux版本在8.0以上我测试用的是Rocky Linux 8.6。建议先执行系统更新sudo dnf update -y sudo dnf upgrade -y遇到过几次安装失败都是因为系统没更新导致的依赖冲突。特别是SElinux这个安全卫士最好提前检查状态sestatus如果显示enforcing建议临时设置为permissive模式sudo setenforce 02.2 必备依赖安装GitLab需要一些基础依赖包这个步骤很多教程会忽略但实测缺少这些会导致后续配置异常sudo dnf install -y curl policycoreutils openssh-server postfix特别注意postfix的配置安装时会弹出交互界面选择Internet Site后系统域名建议保持默认。曾经有同事在这里填了公司域名结果导致邮件服务异常。3. 配置清华镜像源安装GitLab3.1 创建yum仓库文件在/etc/yum.repos.d/下新建gitlab-ce.repo文件这里有个坑要注意el$releasever这个变量在不同系统版本下指向的目录不同。比如Rocky Linux 8对应el89对应el9。sudo tee /etc/yum.repos.d/gitlab-ce.repo EOF [gitlab-ce] nameGitlab CE Repository baseurlhttps://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el\$releasever/ gpgcheck0 enabled1 EOF3.2 执行安装过程先更新yum缓存这个步骤能避免很多奇怪的404错误sudo yum makecache安装社区版GitLab时推荐指定版本号安装而非直接yum install gitlab-ce。因为自动安装最新版可能会遇到兼容性问题sudo yum install gitlab-ce-16.3.4-ce.0.el8安装过程中会看到清华源的域名速度明显比官方源快很多。如果网络中断可以重复执行安装命令yum会自动续传。4. GitLab基础配置4.1 修改关键配置编辑/etc/gitlab/gitlab.rb时external_url不要直接用IP建议配置域名。我吃过亏后期改域名要重新生成很多配置sudo vi /etc/gitlab/gitlab.rb找到external_url改为类似这样external_url http://gitlab.yourdomain.com如果是测试环境也可以用IP端口形式external_url http://192.168.1.100:80804.2 初始化配置执行重配置命令时第一次可能会比较久10-15分钟因为要生成各种密钥和数据库sudo gitlab-ctl reconfigure完成后检查服务状态sudo gitlab-ctl status正常应该看到10个服务都在run状态。如果有个别服务没启动可以单独重启sudo gitlab-ctl restart nginx5. 防火墙与安全配置5.1 端口放行策略除了默认的80端口实际使用中还需要开放其他端口。这是我团队的标准配置sudo firewall-cmd --permanent --add-service{http,https,ssh} sudo firewall-cmd --permanent --add-port8080/tcp # 如果修改了默认端口 sudo firewall-cmd --reload5.2 初始密码处理安装完成后初始root密码在以下文件但24小时后会自动删除sudo cat /etc/gitlab/initial_root_password建议首次登录后立即修改密码并开启二次验证。遇到过因为没改密码导致的安全事件有同事的测试服务器被当成了挖矿机。6. 日常维护技巧6.1 备份与恢复创建备份很简单但恢复时要注意版本一致sudo gitlab-rake gitlab:backup:create备份文件默认在/var/opt/gitlab/backups/建议定期转移到其他服务器。恢复时需要先停止相关服务sudo gitlab-ctl stop unicorn sudo gitlab-ctl stop sidekiq sudo gitlab-rake gitlab:backup:restore BACKUP备份文件名6.2 性能调优对于2核4G的小型服务器建议调整worker数量sudo vi /etc/gitlab/gitlab.rb修改以下参数unicorn[worker_processes] 2 sidekiq[concurrency] 5 postgresql[shared_buffers] 256MB改完后记得重新配置sudo gitlab-ctl reconfigure7. 常见问题排查7.1 502错误处理遇到502错误时首先检查内存是否不足free -h如果swap使用率高可以考虑增加swap空间sudo dd if/dev/zero of/swapfile bs1G count4 sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile7.2 邮件服务配置很多同学反馈注册收不到邮件需要在gitlab.rb中配置SMTPgitlab_rails[smtp_enable] true gitlab_rails[smtp_address] smtp.example.com gitlab_rails[smtp_port] 587 gitlab_rails[smtp_user_name] gitlabexample.com gitlab_rails[smtp_password] password gitlab_rails[smtp_domain] example.com gitlab_rails[smtp_authentication] login gitlab_rails[smtp_enable_starttls_auto] true配置后测试邮件发送sudo gitlab-rails console Notify.test_email(testexample.com, Test, Test Body).deliver_now