在CentOS上搭建GitLab集群可以通过多种方式实现,其中一种常见的方法是使用Docker来部署多个GitLab实例。以下是一个基本的步骤指南:
首先,确保你的系统上已经安装了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实例能够相互通信,需要创建一个Docker网络。
sudo docker network create gitlab_network
创建一个目录来存放GitLab的配置文件和数据。
mkdir ~/gitlab
cd ~/gitlab
复制默认的GitLab配置文件。
sudo cp -r /etc/gitlab /home/git/gitlab/config/
编辑/home/git/gitlab/config/gitlab.rb
文件,配置多个GitLab实例。
# 修改外部URL
external_url 'http://gitlab1.example.com'
# 配置第二个实例
node['gitlab']['instance'] = 2
external_url 'http://gitlab2.example.com'
使用Docker Compose启动GitLab实例。
sudo docker-compose up -d
为了使多个GitLab实例能够通过一个域名访问,可以使用Nginx作为负载均衡器。
安装Nginx。
sudo yum install -y nginx
sudo systemctl start nginx
sudo systemctl enable nginx
配置Nginx。
编辑/etc/nginx/conf.d/gitlab.conf
文件,添加以下内容:
upstream gitlab {
server gitlab1.example.com;
server gitlab2.example.com;
}
server {
listen 80;
server_name gitlab.example.com;
location / {
proxy_pass http://gitlab;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
重启Nginx以应用配置。
sudo systemctl restart nginx
打开浏览器,访问http://gitlab.example.com
,你应该能够看到GitLab的登录页面。你可以尝试使用不同的用户名和密码登录,以验证集群是否正常工作。
/home/git/gitlab/data
)已经挂载到Docker卷中,以防止数据丢失。通过以上步骤,你应该能够在CentOS上成功搭建一个GitLab集群。