在 CentOS 上集成 GitLab 的实操指南
一 环境准备与基础配置
- 更新系统与安装依赖:执行 sudo yum update -y,随后安装所需组件(含邮件通知常用的 postfix):sudo yum install -y curl policycoreutils openssh-server openssh-clients postfix。
- 启动并开机自启 SSH:sudo systemctl enable --now sshd。
- 放行防火墙端口:建议同时开放 HTTP(80)/HTTPS(443)/SSH(22),命令为:sudo firewall-cmd --permanent --add-service={http,https,ssh} && sudo firewall-cmd --reload。
- 启动邮件服务(可选,用于通知与找回密码):sudo systemctl enable --now postfix。
以上为后续安装与集成的基础环境。
二 安装 GitLab CE 与基础配置
- 添加官方 YUM 源并安装:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo EXTERNAL_URL=“http://your_server_ip_or_domain” yum install -y gitlab-ce
将 EXTERNAL_URL 替换为实际访问地址(IP 或域名)。
- 修改主配置并生效:编辑 /etc/gitlab/gitlab.rb,设置 external_url;保存后执行 sudo gitlab-ctl reconfigure 使配置生效,随后可用 sudo gitlab-ctl start/status 管理服务。
- 访问与初始化:浏览器打开配置的地址,首次进入设置 root 管理员密码,完成初始化。
三 集成 CI/CD 与 Jenkins
- 集成 GitLab Runner(推荐方式):
- 安装 Runner 仓库与软件包:curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash,随后 sudo yum install -y gitlab-runner。
- 注册 Runner:在 GitLab 项目页面进入 Settings → CI/CD → Runners,复制 URL 与 Registration token,执行注册命令:sudo gitlab-runner register --url --registration-token ,按提示选择执行器(如 shell、docker 等)。
- 在代码库根目录新增 .gitlab-ci.yml 定义流水线,提交后自动触发构建/测试/部署。
- 与 Jenkins 联动(可选):在 Jenkins 安装 GitLab 插件,配置 GitLab 实例 URL 与认证信息,实现代码变更触发 Jenkins 任务。
四 安全加固与运维要点
- 配置 SMTP 邮件(示例为 QQ 邮箱):在 /etc/gitlab/gitlab.rb 中启用并填写
gitlab_rails[‘smtp_enable’] = true
gitlab_rails[‘smtp_address’] = “smtp.qq.com”
gitlab_rails[‘smtp_port’] = 465
gitlab_rails[‘smtp_user_name’] = “your@qq.com”
gitlab_rails[‘smtp_password’] = “your_password”
gitlab_rails[‘smtp_authentication’] = “login”
gitlab_rails[‘smtp_enable_starttls_auto’] = true
gitlab_rails[‘smtp_tls’] = true
gitlab_rails[‘gitlab_email_from’] = ‘your@qq.com’
修改后执行 sudo gitlab-ctl reconfigure 生效。
- 启用 HTTPS:可使用 Certbot 获取并自动续期证书(示例):sudo yum install certbot python2-certbot-nginx -y,随后 sudo certbot --nginx -d your.domain,证书续期将自动配置。
- 资源与性能:GitLab 为内存密集型,建议至少 4GB 内存(推荐 8GB+)、4 核 CPU、使用 SSD;可按 CPU 核数调整 Unicorn worker 数量(如 unicorn[‘worker_processes’] = 4)。
- 常用运维命令:sudo gitlab-ctl start|stop|restart|status;日志排查可用 sudo gitlab-ctl tail nginx/gitlab_{access,error}.log。
- 备份与更新:定期备份(如 /opt/gitlab/embedded/bin/gitlab-backup create),并保持 GitLab 与 Runner 版本更新。