IaC/CI CD Tool

8. Gitlab Repository Mirroring 방법

Somaz 2025. 1. 20. 18:54
728x90
반응형

Overview

Gitlab Mirroring 방법에 대해서 알아본다.

 

출처 : Gitlab

 


 

Gitlab Repository Mirroring 이란?

Gitlab 에는 Repository Mirroring 기능이 있다. 간단하게 A Gitlab에 B 라는 저장소에서 C Gitlab의 D 라는 저장소로 Mirroring(Push 방식) 가능하다. 또한 외부 소스와 미러링하여 주고받을 수 있다. 

여러 여러 가지 미러링 방법이 있다.

  • Push: GitLab에서 다른 위치로 리포지토리를 미러링한다.
  • Pull: 다른 위치에서 저장소를 미러링한다. 프리미엄 및 얼티밋 티어로 제공된다.
  • Bidirectional(양방향) 미러링도 사용할 수 있지만 충돌을 일으킬 수 있다.

 

Mirroring 작업순서 (Push 방식)

작업 순서는 간단하다. 아래는 A GitLab의 Repo 에서 B GitLab Repo로 Push 방식을 사용해 미러링 할 경우의 예시이다.

  • B GitLab 에서 repo 생성
  • A GitLab 에서 미러링 설정
    • Repository → Settings → Repository → Mirring Repositories
    • Git Reposiroy URL : B GitLab Repo 주소
    • Push, Password, Password 에는 B Repo의 admin access token

 

  • 다시 B GitLab에서 Outbound Request 허용
    • Admin Area → Settings → Network → Outbound Request → Allow requests to the local network from system hooks 체크 후 → A GitLab의 주소 또는 IP를 적어줘야 허용이 된다.

 

 

A GitLab 에서 미러링 설정

 

 

 

 

 

다시 B GitLab에서 Outbound Request 허용

 

 

그럼 성공적으로 미러링 되는걸 볼 수 있다. 만약 잘 되지 않는다면 아래의 로그들을 확인하면 된다.

# 기본 로그 위치
/var/log/gitlab/

# 주요 로그 파일들
/var/log/gitlab/gitlab-rails/production.log  # Rails 애플리케이션 로그
/var/log/gitlab/nginx/access.log            # Nginx 접근 로그
/var/log/gitlab/nginx/error.log             # Nginx 에러 로그

# Rails 로그 실시간 보기
sudo gitlab-ctl tail

# 특정 서비스의 로그만 보기
sudo gitlab-ctl tail gitlab-rails
sudo gitlab-ctl tail nginx

 

 

 

 


Reference

https://docs.gitlab.com/ee/user/project/repository/mirror/

728x90
반응형