在 CentOS 上集成部署 GitLab 的完整方案
一 环境准备与资源建议
二 安装与初始化 GitLab
方式一 Omnibus RPM 包(推荐)
安装依赖与邮件组件
sudo yum update -y
sudo yum install -y curl policycoreutils-python openssh-server postfix git nodejs rsync cronie
sudo systemctl enable --now sshd postfix
sudo firewall-cmd --permanent --add-service=http --add-service=https && sudo firewall-cmd --reload
添加仓库并安装 GitLab CE(将域名或 IP 替换为实际值)
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo EXTERNAL_URL=“http://your_domain_or_ip” yum install -y gitlab-ce
首次配置与启动
sudo gitlab-ctl reconfigure
sudo gitlab-ctl start
访问并完成管理员初始化
浏览器访问 http://your_domain_or_ip,设置 root 用户密码。
方式二 Docker 部署(一致性与回滚更简单)
拉取镜像
docker pull gitlab/gitlab-ce:latest
启动容器(示例将宿主机 8080/443/2222 映射到容器内 80/443/22)
docker run --detach \
–hostname gitlab.example.com \
–publish 8080:80 --publish 443:443 --publish 2222:22 \
–name gitlab \
–privileged \
–restart always \
–volume /home/docker/gitlab/config:/etc/gitlab \
–volume /home/docker/gitlab/logs:/var/log/gitlab \
–volume /home/docker/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
访问与端口说明
浏览器访问 http://your_domain_or_ip:8080(或配置反向代理到 80/443)。如需原生 80/443,请改为 -p 80:80 -p 443:443。
三 核心配置与邮件通知
编辑配置文件 /etc/gitlab/gitlab.rb,设置外部访问地址:
external_url ‘https://gitlab.example.com’
修改后执行:sudo gitlab-ctl reconfigure
SMTP 邮件示例(QQ 企业邮或类似,按需替换)
gitlab_rails[‘smtp_enable’] = true
gitlab_rails[‘smtp_address’] = “smtp.exmail.qq.com”
gitlab_rails[‘smtp_port’] = 465
gitlab_rails[‘smtp_user_name’] = “your_email@example.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_email@example.com’
gitlab_rails[‘smtp_domain’] = “example.com”
修改后执行:sudo gitlab-ctl reconfigure
四 CI/CD 集成与 Runner 注册
安装 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 https://YOUR_GITLAB_URL/ --registration-token YOUR_REGISTRATION_TOKEN
常用执行器与场景:选择 shell(简单脚本)、docker(环境隔离)、或 kubernetes(大规模弹性)。注册完成后在项目中启用 Runner 并使用 .gitlab-ci.yml 定义流水线。
五 安全加固与运维要点