温馨提示×

GitLab在Ubuntu上的集群如何搭建

小樊
38
2026-01-07 06:58:22
栏目: 智能运维

在Ubuntu上搭建GitLab集群可以通过多种方式实现,其中一种常见的方法是使用Docker来部署多个GitLab实例。以下是一个基本的步骤指南:

前提条件

  1. Ubuntu 18.04或更高版本:确保你的系统是最新的。
  2. Docker和Docker Compose:安装并配置好Docker和Docker Compose。

步骤

1. 安装Docker和Docker Compose

首先,更新你的包列表并安装Docker和Docker Compose。

sudo apt update
sudo apt install -y docker.io docker-compose

启动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

2. 创建GitLab配置文件

创建一个目录来存放GitLab的配置文件和数据。

mkdir ~/gitlab
cd ~/gitlab

创建一个docker-compose.yml文件,并添加以下内容:

version: '3'

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
    ports:
      - '80:80'
      - '443:443'
      - '22:22'
    volumes:
      - './config:/etc/gitlab'
      - './logs:/var/log/gitlab'
      - './data:/var/opt/gitlab'

3. 初始化GitLab

运行以下命令来初始化GitLab:

sudo docker-compose up -d

GitLab将会下载并启动。初始设置可能需要一些时间。

4. 配置集群

如果你需要搭建多个GitLab实例(例如,用于高可用性或负载均衡),你可以复制上述配置文件并进行适当的修改。

例如,创建第二个GitLab实例:

cp docker-compose.yml gitlab-cluster.yml

编辑gitlab-cluster.yml文件,修改hostname和端口映射:

version: '3'

services:
  gitlab1:
    image: 'gitlab/gitlab-ce:latest'
    restart: always
    hostname: 'gitlab1.example.com'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://gitlab1.example.com'
        gitlab_rails['lfs_enabled'] = true
        gitlab_rails['gitlab_shell_ssh_port'] = 2222
    ports:
      - '80:80'
      - '443:443'
      - '2222:22'
    volumes:
      - './config:/etc/gitlab'
      - './logs:/var/log/gitlab'
      - './data:/var/opt/gitlab'

  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
    ports:
      - '81:80'
      - '444:443'
      - '2223:22'
    volumes:
      - './config:/etc/gitlab'
      - './logs:/var/log/gitlab'
      - './data:/var/opt/gitlab'

然后运行:

sudo docker-compose -f gitlab-cluster.yml up -d

5. 配置负载均衡

你可以使用Nginx或HAProxy等工具来配置负载均衡。以下是一个简单的Nginx配置示例:

http {
    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;
        }
    }
}

将上述配置保存为/etc/nginx/sites-available/gitlab,然后创建符号链接:

sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/

测试Nginx配置并重启服务:

sudo nginx -t
sudo systemctl restart nginx

总结

通过上述步骤,你可以在Ubuntu上使用Docker和Docker Compose搭建一个GitLab集群。根据你的需求,你可以进一步优化和扩展这个集群,例如添加更多的GitLab实例、配置SSL证书、设置监控和日志收集等。

0