温馨提示×

GitLab Linux环境如何配置

小樊
39
2025-12-20 12:40:26
栏目: 智能运维

Linux 上 GitLab 环境配置全流程

一 环境准备与资源建议

  • 选择发行版:优先使用 Ubuntu/DebianCentOS/RHEL 等主流发行版。
  • 资源基线:至少 2GB RAM(推荐 4GB+),可用存储 20GB+,并具备 root/sudo 权限。
  • 基础组件:安装 curl、openssh-server、ca-certificates;邮件可选 Postfix;时区数据建议安装 tzdata
  • 主机名与解析:设置主机名(如 gitlab.example.com),并确保 DNS 或 /etc/hosts 可解析。
  • 端口规划:默认 HTTP 80HTTPS 443SSH 22;如冲突需提前规划端口映射或停用占用服务。

二 安装方式一 Omnibus 包管理(推荐)

  • Ubuntu/Debian
    1. 安装依赖 sudo apt-get update sudo apt-get install -y curl openssh-server ca-certificates tzdata perl
    2. 添加官方仓库并安装 curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash sudo apt-get install -y gitlab-ce
  • CentOS/RHEL
    1. 安装依赖与邮件服务 sudo yum install -y curl policycoreutils-python openssh-server postfix sudo systemctl enable --now postfix
    2. 添加官方仓库并安装 curl -s 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 ‘http://your_domain_or_ip’
    • 应用配置并启动:sudo gitlab-ctl reconfigure && sudo gitlab-ctl start
    • 访问页面设置 root 管理员密码。

三 安装方式二 Docker Compose 快速部署

  • 准备 docker-compose.yml(示例将主机 5480→80、5443→443、5022→22 映射,数据持久化到当前目录): version: ‘3.6’ services: gitlab: image: gitlab/gitlab-ee:17.4.5-ee.0 container_name: gitlab restart: always ports: - ‘5480:80’ - ‘5443:443’ - ‘5022:22’ volumes: - ‘./config:/etc/gitlab’ - ‘./logs:/var/log/gitlab’ - ‘./data:/var/opt/gitlab’ shm_size: ‘256m’
  • 启动与初始化
    • 启动:docker-compose up -d
    • 查看初始 root 密码:docker exec -it gitlab cat /etc/gitlab/initial_root_password
    • 修改配置后执行:docker exec -it gitlab gitlab-ctl reconfigure
  • 说明:生产环境建议固定版本号(示例为 17.4.5-ee.0),社区版可将镜像替换为 gitlab/gitlab-ce:版本号

四 关键配置与运维要点

  • 核心配置文件与生效方式
    • 配置文件:/etc/gitlab/gitlab.rb
    • 每次修改后执行:sudo gitlab-ctl reconfigure 使配置生效
  • 邮件通知 SMTP(示例为通用参数,按实际 SMTP 调整) gitlab_rails[‘gitlab_email_enabled’] = true gitlab_rails[‘gitlab_email_from’] = ‘gitlab@example.com’ gitlab_rails[‘smtp_enable’] = true gitlab_rails[‘smtp_address’] = “smtp.example.com” gitlab_rails[‘smtp_port’] = 587 gitlab_rails[‘smtp_user_name’] = “gitlab@example.com” gitlab_rails[‘smtp_password’] = “your_password” gitlab_rails[‘smtp_domain’] = “example.com” gitlab_rails[‘smtp_authentication’] = “login” gitlab_rails[‘smtp_enable_starttls_auto’] = true gitlab_rails[‘smtp_tls’] = true
  • HTTPS 与证书
    • 使用 Let’s Encrypt 获取免费证书(示例域名 example.com): sudo apt-get install certbot python-certbot-nginx sudo certbot certonly --standalone -d example.com -d www.example.com
    • gitlab.rb 中启用并指向证书: nginx[‘redirect_http_to_https’] = true nginx[‘ssl_certificate’] = “/etc/letsencrypt/live/example.com/fullchain.pem” nginx[‘ssl_certificate_key’] = “/etc/letsencrypt/live/example.com/privkey.pem”
    • 执行:sudo gitlab-ctl reconfigure
  • 防火墙与端口
    • firewalld(CentOS/RHEL): sudo firewall-cmd --permanent --add-port={80,443,22}/tcp sudo firewall-cmd --reload
    • ufw(Ubuntu,若启用): sudo ufw allow 80,443,22/tcp
  • 常用运维命令
    • 启停与状态:sudo gitlab-ctl start|stop|restart|status
    • 日志排查:sudo gitlab-ctl tail
    • 版本查看:gitlab-ctl version
  • 备份与恢复
    • 备份:sudo gitlab-rake gitlab:backup:create(备份文件位于 /var/opt/gitlab/backups/
    • 恢复:将备份文件放置到上述目录后执行 sudo gitlab-rake gitlab:backup:restore BACKUP=备份时间戳
  • 常见问题处理
    • 与已有 Nginx 冲突:可在 gitlab.rb 中禁用内置 Nginx 并配置外部 Nginx 反向代理
    • 忘记管理员密码:进入控制台重置 gitlab-rails console production user = User.where(id: 1).first user.password = ‘NewStrongPass!’ user.password_confirmation = ‘NewStrongPass!’ user.save!

0