在银河麒麟服务器版v10上部署GitLab CE:从依赖配置到服务调优

在银河麒麟服务器版v10上部署GitLab CE:从依赖配置到服务调优 1. 环境准备与依赖检查在银河麒麟服务器版v10上部署GitLab CE之前首先要确保系统环境满足基本要求。我遇到过不少因为依赖缺失导致安装失败的案例所以建议先花10分钟做好以下准备工作系统版本确认执行cat /etc/kylin-release查看具体版本号确保是银河麒麟服务器版v10 SP2及以上版本。最近有个客户在SP1版本上安装时遇到glibc库冲突升级系统后才解决。内存与存储检查GitLab官方建议至少4GB内存实测发现8GB以上才能流畅运行。用free -h和df -h检查资源时特别注意/var目录要有20GB以上空间因为默认的Docker Registry会占用大量存储。关键依赖安装麒麟系统的软件源与CentOS有些差异需要特别注意# 基础工具链 sudo yum -y install curl policycoreutils openssh-server openssh-clients # 邮件服务可选但建议安装 sudo yum -y install postfix # 替代policycoreutils-python的方案 sudo dnf -y install python3-policycoreutils注意如果遇到policycoreutils-python报错这是麒麟系统软件包命名差异导致的改用python3-policycoreutils即可。上周帮某金融客户部署时就踩过这个坑。2. 软件包获取与安装2.1 下载适配的GitLab CE包直接从GitLab官方仓库下载RPM包时要特别注意架构兼容性。推荐使用以下命令获取最新适配版本wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/8/gitlab-ce-15.11.0-ce.0.el8.x86_64.rpm如果下载速度慢可以尝试国内镜像源。去年我在某国企内网环境部署时通过阿里云镜像加速下载速度从10KB/s提升到8MB/s。2.2 安装过程详解执行安装命令时建议加上--nodeps参数避免不必要的依赖检查sudo rpm -ivh --nodeps gitlab-ce-15.11.0-ce.0.el8.x86_64.rpm安装完成后会看到ASCII艺术字样的欢迎信息此时不要急着配置。先检查关键目录是否生成ls -l /opt/gitlab/ /var/opt/gitlab/3. 网络与安全配置3.1 修改监听地址编辑配置文件时建议同时修改以下两个参数sudo vim /etc/gitlab/gitlab.rbexternal_url http://your_server_ip:8888 nginx[listen_addresses] [0.0.0.0]最近遇到一个典型故障某客户配置后只能本机访问就是因为漏配了nginx监听地址。3.2 防火墙规则设置银河麒麟默认使用firewalld需要放行多个端口sudo firewall-cmd --permanent --add-servicehttp sudo firewall-cmd --permanent --add-servicehttps sudo firewall-cmd --permanent --add-port8888/tcp sudo firewall-cmd --reload如果是生产环境建议额外配置SELinux规则sudo semanage port -a -t http_port_t -p tcp 88884. 服务初始化与调优4.1 首次运行配置执行重配置命令时建议观察输出sudo gitlab-ctl reconfigure这个过程通常需要3-5分钟完成后检查关键服务状态sudo gitlab-ctl status | grep -E nginx|postgresql|redis|sidekiq4.2 性能优化建议根据服务器配置调整工作进程数# /etc/gitlab/gitlab.rb unicorn[worker_processes] 4 # 建议为CPU核心数1 sidekiq[concurrency] 10 # 内存充足时可适当增加对于内存小于8GB的服务器一定要启用交换分区sudo dd if/dev/zero of/swapfile bs1G count4 sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile5. 日常运维管理5.1 常用命令速查这些命令我每天都会用到# 查看实时日志调试必备 sudo gitlab-ctl tail # 备份与恢复重要 sudo gitlab-rake gitlab:backup:create sudo gitlab-ctl stop unicorn sudo gitlab-ctl stop sidekiq sudo gitlab-rake gitlab:backup:restore BACKUP备份文件名5.2 故障排查技巧遇到服务异常时我通常按这个顺序检查查看最近日志journalctl -u gitlab-runsvdir -n 100检查端口占用ss -tulnp | grep 8888验证数据库连接sudo gitlab-rake db:migrate:status去年处理过一个典型案例Sidekiq进程卡死导致CI/CD阻塞最终通过sudo gitlab-ctl restart sidekiq解决。6. 国产化环境适配经验在银河麒麟上运行GitLab CE可能会遇到一些特殊问题这里分享三个实战经验中文路径支持编辑/opt/gitlab/embedded/service/gitlab-rails/config/application.rb增加config.encoding utf-8SMTP邮件配置麒麟系统自带的postfix可能需要额外配置# /etc/gitlab/gitlab.rb gitlab_rails[smtp_enable] true gitlab_rails[smtp_address] smtp.yourdomain.com gitlab_rails[smtp_port] 587定时任务优化修改crontab避免与系统任务冲突sudo vim /etc/gitlab/gitlab.rbgitlab_rails[rake_cache_clear] 0 * * * * gitlab_rails[repository_check_worker] */5 * * * *