>운영 및 유지보수 >리눅스 운영 및 유지 관리 >Linux에서 고가용성 로컬 코드 저장소(예: GitLab)를 구성하는 방법

Linux에서 고가용성 로컬 코드 저장소(예: GitLab)를 구성하는 방법

WBOY
WBOY원래의
2023-07-05 18:27:102330검색

Linux에서 고가용성 로컬 코드 저장소(예: GitLab)를 구성하는 방법

소프트웨어 개발 및 팀워크가 점점 복잡해짐에 따라 코드 관리 및 버전 제어에 대한 요구도 증가하고 있습니다. 오픈 소스 코드 호스팅 플랫폼인 GitLab은 팀 공동 개발에 널리 사용됩니다. 코드 웨어하우스의 신뢰성과 안정성을 향상시키기 위해 단일 서버에 장애가 발생할 경우 자동으로 백업 서버로 전환할 수 있도록 가용성이 높은 로컬 코드 웨어하우스를 구성하여 팀의 업무에 영향을 미치지 않도록 할 수 있습니다.

이 기사에서는 Linux 시스템에서 GitLab을 구성하는 것을 예로 들어 고가용성 로컬 코드 저장소를 구현하는 방법을 소개합니다.

1. GitLab 설치 및 구성

  1. GitLab 설치

Linux 시스템에 GitLab을 설치하는 방법에는 여러 가지가 있으며 여기서는 CentOS를 예로 들어 yum을 사용하여 설치합니다.

먼저 GitLab 소프트웨어 소스를 추가합니다:

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash

그런 다음 GitLab을 설치합니다:

sudo yum install -y gitlab-ee
  1. GitLab 구성

설치가 완료된 후 관리자 계정 및 비밀번호 설정을 포함하여 GitLab에서 몇 가지 기본 구성을 수행해야 합니다. , 도메인 이름 바인딩 등

구성 파일 /etc/gitlab/gitlab.rb를 편집하여 구성하세요. /etc/gitlab/gitlab.rb进行配置:

sudo vi /etc/gitlab/gitlab.rb

找到以下行,将其取消注释并修改为对应的值:

external_url 'http://yourdomain.com'

保存并退出配置文件后,重新配置GitLab:

sudo gitlab-ctl reconfigure

二、配置高可用的本地代码仓库

为了实现高可用的本地代码仓库,我们需要设置一个主服务器和一个备用服务器,并通过负载均衡将流量分发到这两台服务器上。

下面是一个示例的配置,主服务器地址为192.168.0.1,备用服务器地址为192.168.0.2。

  1. 安装和配置负载均衡

在主服务器和备用服务器上都安装和配置一个负载均衡器。这里我们使用Nginx作为负载均衡器。

首先,安装Nginx:

sudo yum install -y nginx

然后,编辑Nginx的配置文件/etc/nginx/nginx.conf

sudo vi /etc/nginx/nginx.conf

在http模块中添加以下配置:

http {
    upstream gitlab {
        server 192.168.0.1:80 weight=5;
        server 192.168.0.2:80 weight=1 backup;
    }

    server {
        listen       80;
        server_name  yourdomain.com;

        location / {
            proxy_pass         http://gitlab;
            proxy_set_header   X-Real-IP $remote_addr;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header   Host $http_host;
        }
    }
}

保存并退出配置文件后,重新启动Nginx服务:

sudo systemctl restart nginx
  1. 配置主服务器和备用服务器

在主服务器和备用服务器上都进行如下配置。

首先,编辑GitLab的配置文件/etc/gitlab/gitlab.rb

sudo vi /etc/gitlab/gitlab.rb

找到以下行,将其修改为对应的值:

external_url 'http://yourdomain.com'
gitlab_rails['gitlab_shell_ssh_port'] = 10022

然后,关闭GitLab自带的Nginx服务,在/etc/gitlab/gitlab.rb添加以下行:

nginx['enable'] = false

保存并退出配置文件后,重新配置GitLab:

sudo gitlab-ctl reconfigure

最后,修改SSH配置文件/etc/ssh/sshd_config,将SSH的监听端口改为10022:

sudo vi /etc/ssh/sshd_config

找到以下行,将其修改为对应的值:

Port 10022

保存并退出配置文件后,重新启动SSH服务:

sudo systemctl restart sshd

三、测试高可用配置

完成以上配置后,我们可以进行一些测试来验证高可用的配置是否生效。

  1. 测试负载均衡

在浏览器中输入http://yourdomain.com,查看是否能够正常访问GitLab页面。刷新页面多次,确认每次访问到的是不同的服务器。

  1. 测试主备切换

在主服务器上停止GitLab服务:

sudo gitlab-ctl stop

然后,再次在浏览器中输入http://yourdomain.comrrreee

다음 줄을 찾아서 주석 처리를 해제하고 해당 값으로 수정하세요.

rrreee

구성을 저장하고 종료하세요. file 마지막으로 GitLab을 재구성합니다:

rrreee

2. 고가용성 로컬 코드 저장소 구성 🎜🎜 고가용성 로컬 코드 저장소를 달성하려면 메인 서버와 백업 서버를 설정하고 이 두 서버에 트래픽을 분산해야 합니다. 서버의 로드 밸런싱을 통해 🎜🎜다음은 구성 예이며 기본 서버 주소는 192.168.0.1이고 백업 서버 주소는 192.168.0.2입니다. 🎜🎜🎜로드 밸런싱 설치 및 구성 🎜🎜🎜기본 서버와 백업 서버 모두에 로드 밸런서를 설치 및 구성합니다. 여기서는 Nginx를 로드 밸런서로 사용합니다. 🎜🎜먼저 Nginx를 설치합니다. 🎜rrreee🎜그런 다음 Nginx의 구성 파일 /etc/nginx/nginx.conf를 편집합니다. 🎜rrreee🎜http 모듈에 다음 구성을 추가합니다. 🎜rrreee🎜저장하고 종료합니다. 파일을 구성한 후 Nginx 서비스를 다시 시작합니다. 🎜rrreee🎜🎜메인 서버 및 백업 서버 구성🎜🎜🎜메인 서버와 백업 서버 모두에서 다음을 구성합니다. 🎜🎜먼저 GitLab의 구성 파일 /etc/gitlab/gitlab.rb를 편집합니다. 🎜rrreee🎜다음 줄을 찾아 해당 값으로 수정합니다. 🎜rrreee🎜그런 다음 GitLab의 자체 Nginx 서비스를 닫습니다. /etc/gitlab/gitlab.rb에 다음 줄을 추가하세요: 🎜rrreee🎜구성 파일을 저장하고 종료한 후 GitLab을 재구성하세요: 🎜rrreee🎜마지막으로 SSH 구성 파일 / etc를 수정하세요 /ssh/sshd_config, SSH 수신 포트를 10022로 변경: 🎜rrreee🎜다음 줄을 찾아 해당 값으로 수정합니다. 🎜rrreee🎜구성 파일을 저장하고 종료한 후 SSH 서비스를 다시 시작합니다. 🎜 rrreee 🎜3. 고가용성 구성 테스트🎜🎜위 구성을 완료한 후 고가용성 구성이 적용되는지 확인하기 위해 몇 가지 테스트를 수행할 수 있습니다. 🎜🎜🎜로드 밸런싱 테스트🎜🎜🎜브라우저에 http://yourdomain.com을 입력하여 정상적으로 GitLab 페이지에 접속할 수 있는지 확인해 보세요. 페이지를 여러 번 새로 고쳐 매번 다른 서버에 액세스하고 있는지 확인하세요. 🎜🎜🎜활성/대기 전환 테스트🎜🎜🎜메인 서버에서 GitLab 서비스를 중지합니다. 🎜rrreee🎜그런 다음 브라우저에 http://yourdomain.com을 다시 입력하여 자동 전환 여부를 확인합니다. 대기 서버로. 🎜🎜위의 테스트를 통해 가용성이 높은 로컬 코드 저장소가 성공적으로 구성되고 효과적임을 확인할 수 있습니다. 🎜🎜고가용성 로컬 코드 저장소를 구성할 때 GitLab 및 Nginx와 같은 도구를 사용하고 관련 구성을 만들었습니다. 이러한 구성을 통해 우리는 Linux 시스템에서 가용성이 높은 로컬 코드 웨어하우스를 성공적으로 구성했습니다. 이런 방식으로 메인 서버에 장애가 발생하더라도 백업 서버가 대신할 수 있어 팀의 작업이 영향을 받지 않고 코드 웨어하우스의 신뢰성과 안정성이 향상됩니다. 🎜

위 내용은 Linux에서 고가용성 로컬 코드 저장소(예: GitLab)를 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.