[Gitlab] 깃 랩 미러링(gitlab mirroring, 백업 체계 구축)
■ 배경
현재 회사는 개발서버가 2중으로 구성되어 있었습니다.
파트 내에서 개발 시작되는 환경은 GitLab과 Jenkins가 호스팅되어 있는 온프레미스 구조로 구성되어 있고 1차 서버에서 2차 개발서버로 미러링 및 배포가 이뤄집니다.
2차 개발서버는 여러 팀에서 참조하고있는데 간헐적으로 1차 개발서버에 장애가 발생하는 문제가 있었습니다. 이러한 장애는 개발, 테스트, 이행 일정에 차질을 초래하여, 팀의 업무 효율성을 저해했습니다.
이러한 문제를 해결하기 위해, 저는 백업 체계를 구축하기로 결심했습니다.
그 과정을 gitLab 미러링 방법을 공유하고자 합니다.
■ GitLab 미러링
1. 백업 gitlab에 소스를 받을 타겟 프로젝트를 생성
생략...
2. 백업 gitlab에 인증을 위한 access token을 생성(선택이며 token이 아닌 로그인 비밀번호를 사용해도 됨)

access token은 해당 메뉴에서 생성할 수 있다.
하나의 프로젝트가 아닌 상위 그룹 하위에 있는 모든 프로젝트에 동일하게 적용하고싶다면, 그룹 settings로 들어가서 access token을 생성하면 된다.

role의 경우, 미러링(push)를 하고자 하는 브랜치의 권한 이상의 권한을 설정한다.
예를들어 미러링을 받을 타겟 프로젝트 main 브랜치의 push 권한이 Maintainer이고 access token의 권한이 Developer로 되어있다면, 해당 브랜치에 push를 할 수 없어서 미러링을 할 수 없다.
(권한은 Owner가 가장 높고 Guest가 가장 낮다.)
3. 원본 gitlab에서 미러링을 설정

프로젝트 > Settings > Repository > Mirroing repositories
Git repository URL에는 목적지의 "http(s)://계정@git주소" 를 적어준다.
예를들어 나의 경우, 폐쇄망에서 구현한 백업 gitlab 프로젝트가 목적지이다.
해당 프로젝트의 주소가 http://10.25.111.222/mygroup/my-proj.git 이고 해당 프로젝트의 권한을 가지고 있는 계정의 정보가 admin 일 경우, http://admin@10.25.111.222/mygroup/my-proj.git 이 되겠다.

password에는 admin 계정의 gitlab 로그인 비밀번호 혹은 생성한 access token을 입력한다.

Mirror only protected branches 를 선택하면 protected branches로 설정한 branch들만 mirroring할 수 있다.
(여러 개발자가 같이 개발을하면 자연스럽게 다양한 feature 브랜치가 생성될텐데 이 모든 브랜치를 가져갈 필요가 없으므로 주요 브랜치만 가져갈 것이라면 protected로 설정해 놓고 선택해주면 좋다.)

protected branches 설정은 Mirroring repositories 바로 아래에서 확인 가능하다.

실제 미러링이 설정이 완료되면 위와 같이 row하나가 생긴다. 나 처럼 여러개의 미러링을 구축할 수 있다.
실제 설정한 브랜치의 변화(commit)이 생기면 자동으로 미러링(현재 설정은 push)가 진행된다.
수동으로 직접 미러링을 시키고 싶다면 오른쪽에 새로고림 아이콘을 클릭해줘도 된다.
'Programming > Git' 카테고리의 다른 글
| [Git Hook] pre commit 으로 장애 예방하기(ft. husky, osascript) (0) | 2024.08.29 |
|---|---|
| 깃헙 특정 브랜치 클론 하기 / github branch clone (0) | 2022.03.15 |


