Linux GitLab配置指南及技巧
导读:Linux GitLab 配置指南及实用技巧 一 环境准备与安装 系统要求与网络 推荐:4 核 CPU / 4GB 内存(生产建议 8GB+)/ 50GB+ 磁盘,确保 80/443(或自定义端口)可达。 安装常用依赖:curl、ope...
Linux GitLab 配置指南及实用技巧
一 环境准备与安装
- 系统要求与网络
- 推荐:4 核 CPU / 4GB 内存(生产建议 8GB+)/ 50GB+ 磁盘,确保 80/443(或自定义端口)可达。
- 安装常用依赖:curl、openssh-server、ca-certificates、tzdata、perl;邮件通知建议安装并启用 Postfix。
- Debian/Ubuntu
- 安装依赖:
sudo apt-get update & & sudo apt-get install -y curl openssh-server ca-certificates tzdata perl - 添加仓库并安装 CE:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash后执行sudo apt-get install -y gitlab-ce - 防火墙:
sudo ufw allow 80,443 & & sudo ufw reload
- 安装依赖:
- CentOS/RHEL(以 CentOS 7 为例)
- 安装依赖:
sudo yum install -y curl policycoreutils-python openssh-server postfix - 启动邮件与防火墙:
sudo systemctl enable --now postfix;sudo firewall-cmd --permanent --add-service={ http,https,ssh} & & sudo firewall-cmd --reload - 添加仓库并安装 CE:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash后执行sudo yum install -y gitlab-ce
- 安装依赖:
- 首次访问与初始化
- 修改
/etc/gitlab/gitlab.rb的 external_url 为服务器 IP 或域名,执行sudo gitlab-ctl reconfigure应用配置;访问页面按提示设置管理员密码。
- 修改
二 核心配置与优化
- 主配置文件与生效方式
- 所有核心参数位于 /etc/gitlab/gitlab.rb;每次修改后执行
sudo gitlab-ctl reconfigure使配置生效。
- 所有核心参数位于 /etc/gitlab/gitlab.rb;每次修改后执行
- 域名与端口
- 设置外部访问地址:
external_url 'http://your-domain-or-ip[:port]' - 如需自定义端口(示例 1000):
external_url 'http://your-ip:1000',并放行防火墙sudo firewall-cmd --permanent --add-port=1000/tcp & & sudo firewall-cmd --reload
- 设置外部访问地址:
- 使用外部 Nginx(可选)
- 在
gitlab.rb中禁用内置 Nginx:nginx['enable'] = false,并在外部 Nginx 反向代理到 GitLab Workhorse 端口(默认 8080)。
- 在
- 存储与目录迁移
- 修改仓库数据目录:
git_data_dirs({ "default" => { "path" => "/mnt/nas/git-data" } } );迁移时用rsync -av /var/opt/gitlab/git-data/repositories /mnt/nas/git-data/后gitlab-ctl reconfigure
- 修改仓库数据目录:
- 资源与文件句柄
- 提升系统限制(示例):
/etc/security/limits.conf增加root soft nofile 4096root hard nofile 4096root soft nproc 4096root hard nproc 4096
- 提升系统限制(示例):
- 监控与日志
- 内置 Prometheus/Grafana 可用于监控实例性能与健康;定期查看关键日志(如 unicorn、sidekiq、gitlab-shell)定位问题。
三 邮件通知与备份恢复
- SMTP 邮件(示例 QQ 企业邮)
- 在
gitlab.rb启用并配置:gitlab_rails['smtp_enable'] = truegitlab_rails['smtp_address'] = "smtp.exmail.qq.com"gitlab_rails['smtp_port'] = 465gitlab_rails['smtp_user_name'] = "your@email.com"gitlab_rails['smtp_password'] = "授权码/密码"gitlab_rails['smtp_domain'] = "exmail.qq.com"gitlab_rails['smtp_authentication'] = "login"gitlab_rails['smtp_enable_starttls_auto'] = truegitlab_rails['smtp_tls'] = truegitlab_rails['gitlab_email_from'] = 'your@email.com'
- 执行
sudo gitlab-ctl reconfigure生效。
- 在
- 备份与恢复
- 备份:默认目录 /var/opt/gitlab/backups,命令:
sudo gitlab-rake gitlab:backup:create - 恢复:先停止相关服务
sudo gitlab-ctl stop unicorn & & sudo gitlab-ctl stop sidekiq,再执行sudo gitlab-rake gitlab:backup:restore BACKUP=备份时间戳- 恢复后
sudo gitlab-ctl start
- 备份保留策略:
gitlab_rails['backup_keep_time'] = 604800(保留 7 天)。
- 备份:默认目录 /var/opt/gitlab/backups,命令:
四 常见故障排查与运维命令
- 常见故障
- 502 Bad Gateway:常见于内存不足(建议 ≥4GB)、服务未就绪或端口冲突;检查资源、端口占用并重启服务。
- 页面 422:多与 CSRF/会话 或 Unicorn/Workhorse 异常有关;重启服务、清理浏览器缓存,必要时查看日志定位。
- 运维常用命令
- 服务管理:
sudo gitlab-ctl start|stop|restart|status - 重新配置:
sudo gitlab-ctl reconfigure - 日志查看:
sudo gitlab-ctl tail(或进入/var/log/gitlab/对应组件目录)
- 服务管理:
- 重置管理员密码
sudo gitlab-rails console -e production后执行:user = User.where(id: 1).firstuser.password = 'YourNewStrongP@ssw0rd!'user.password_confirmation = 'YourNewStrongP@ssw0rd!'user.save!
五 安全与最佳实践
- 升级与更新
- 定期升级到包含安全补丁的新版本;变更前做好 备份 与 变更窗口 规划。
- 访问控制
- 仅开放必要端口(80/443 或自定义端口);使用 UFW/Firewalld 精细化放行;必要时部署外部 反向代理/负载均衡 与 WAF。
- 安全加固
- 启用 HTTPS/TLS;限制 root 直接登录;为 Git 使用 SSH 密钥;定期审计用户、项目与 Runner 权限。
- 备份策略
- 建议配置 定时备份(如每日),并定期在测试环境演练恢复流程,确保可用性与一致性。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux GitLab配置指南及技巧
本文地址: https://pptw.com/jishu/786752.html
