在CentOS上搭建GitLab集群可以通过多种方式实现,其中一种常见的方法是使用Docker来部署多个GitLab实例。以下是一个基本的步骤指南:
首先,确保你的CentOS系统已经安装了Docker和Docker Compose。
# 安装Docker
sudo yum install -y docker
sudo systemctl start docker
sudo systemctl enable docker
# 安装Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
创建一个目录来存放GitLab配置文件和数据。
mkdir ~/gitlab-cluster
cd ~/gitlab-cluster
创建一个docker-compose.yml文件,并添加以下内容:
version: '3.8'
services:
gitlab:
image: 'gitlab/gitlab-ce:latest'
restart: always
hostname: 'gitlab.example.com'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://gitlab.example.com'
gitlab_rails['lfs_enabled'] = true
gitlab_rails['gitlab_shell_ssh_port'] = 2222
nginx['listen_port'] = 80
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.example.com.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.example.com.key"
ports:
- '80:80'
- '443:443'
- '22:22'
volumes:
- './config:/etc/gitlab'
- './logs:/var/log/gitlab'
- './data:/var/opt/gitlab'
为了安全起见,建议为GitLab配置SSL证书。你可以使用Let’s Encrypt来获取免费的SSL证书。
sudo yum install -y certbot python3-certbot-nginx
sudo certbot --nginx -d gitlab.example.com
按照提示完成证书的获取和配置。
在~/gitlab-cluster目录下运行以下命令来启动GitLab集群:
docker-compose up -d
如果你需要搭建多个GitLab节点,可以在同一个docker-compose.yml文件中添加更多的服务,并为每个服务指定不同的hostname和external_url。
例如,添加第二个节点:
gitlab2:
image: 'gitlab/gitlab-ce:latest'
restart: always
hostname: 'gitlab2.example.com'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://gitlab2.example.com'
gitlab_rails['lfs_enabled'] = true
gitlab_rails['gitlab_shell_ssh_port'] = 2223
nginx['listen_port'] = 80
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab2.example.com.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab2.example.com.key"
ports:
- '81:80'
- '444:443'
- '223:22'
volumes:
- './config:/etc/gitlab'
- './logs:/var/log/gitlab'
- './data:/var/opt/gitlab'
然后再次运行docker-compose up -d来启动第二个节点。
通过以上步骤,你可以在CentOS上搭建一个基本的GitLab集群。根据实际需求,你可能需要进一步调整配置和优化性能。