본문 바로가기
Gerrit/Gerrit 설치 및 자체 작업

1. Gerrit 설치

by 실짱 2023. 10. 17.

이제 Gerrit 을 설치해보자.

자세한 설명은 NAVER 형님들이 잘 해 놓으셨다. (Gerrit을 이용한 코드 리뷰 시스템 - 코드 리뷰 시스템 설치 )

 

(GitHub 처럼 Gerrit 도 GerritHub 가 있다. Gerrit 을 특별히 customizing 할 필요가 없는 상황이라면 GerritHub 로도 코드리뷰는 충분히 할 수 있다. 다만 내꺼가 아니다보니 내 상황에 맞게 지지고 볶지를 못해 안타까움을 느끼게 된다. 그런 상황이라면 이제부터 따라가는거 추천)

 

항상 모든 셋업이 그렇듯이, 설치 자체는 큰 어려움이 없다. 설치 후 각종 셋팅을 셋업하는것이 우리를 힘들게 한다.

추후 서버가 날라갈것을 대비해 백업 및 복습 차원에서 기록을 남겨보자.

1. 사전 준비

  • Git 설치 : Gerrit 은 저장소로 Git 을 사용하기 때문에 Git 설치가 필수다. 이미 앞에서 설명했으므로 여기서는 패스
  • Database 설치 : Gerrit 은 기본 Database 로 H2 를 제공한다. 기본적인 데이터베이스 작업만 필요할 경우 H2로도 충분하다. 추가로 복잡하게 계정등을 관리하고싶으면 MySql 등의 추가 데이터베이스를 설치해서 연동할 수 있다. 우리는 그럴 필요 없어서 패스
  • Apache Web 서버 설치 : Apache web 서버를 구성해서 외부와 통신해야 한다. 그러나 Ubuntu 22.04 에는 이미 Apache2 가 설치되어 있다. 패스

2. Gerrit user 생성

Git server 때와 마찬가지로 필수는 아니지만 Gerrit 만을 위한 별도 user 를 생성해서 관리하는게 여러모로 편리하다. (서버를 구축할때는 거의 필수라고 본다. 하나의 user 로 통합 관리하면 gerrit 에 문제가 발생될 경우 전체 service 를 down 시켜야 된다.)

# 먼저 /opt/gerrit 폴더를 생성한다. gerrit user 가 설치될 home directory다.
$ sudo mkdir /opt/gerrit

# gerrit user 생성 (-d 옵션으로 home directory 를 위에서 만든 디렉토리로 지정)
$ sudo useradd -d /opt/gerrit gerrit

# 폴더 소유권 변경
$ sudo chown gerrit:gerrit /opt/gerrit

# 폴더 write 권한 설정
$ sudo chmod u+rwx /opt/gerrit

 

3. Gerrit 설치 파일 다운로드

Gerrit 은 Java Web Application 이다. 그래서 확장자가 war (Web Application Archive) 이다.

Gerrit Code Review | Gerrit Code Review 

여기에 가면 최신 버전의 war 파일을 다운로드 할 수 있다. 

2023년 7월31일 기준 3.8.1

4. war 파일 설치 실행

# 3에서 다운로드한 war 파일을 gerrit home directory 로 copy
$ sudo cp ./gerrit-3.8.1.war /opt/gerrit

# gerrit 은 user 가 다르기때문에 모든일은 권한 변경부터
$ sudp chown -R gerrit:gerrit /opt/gerrit/gerrit-3.8.1.war

# user 변경
$ su - gerrit

# 안만들어도 되지만 gerrit 서비스를 위한 폴더 생성
$ mkdir gerrit

# war 파일 실행 (init 옵션으로 초기화 진행, -d 옵션으로 설치 폴더 지정)
$ java -jar gerrit-3.8.1.war init -d /opt/gerrit/gerrit

그럼 이제 무수히 많은 설정들을 채우는 단계에 돌입하게 된다. (Welcome to hellgate~!)

 

5. 셋팅

옵션중에 y/N 혹은Y/n 등이 표시되는데 대문자가 디폴트 값이다. 아무짓도 안하고 엔터치면 대문자의 value 가 적용된다.
물음표(?) 가 등장하는 항목도 있는데 이때 ? 를 넣고 엔터를 치면 적용 가능한 옵션들이 리스트업된다.

설정 시작

Git repository 지정

현재 폴더 위치는 /opt/gerrit/gerrit 이다.

/opt/gerrit/gerrit 밑에 새 폴더를 생성해준다. default 가 git 이니 그냥 넘어가면 git 폴더를 만들어준다.

 

보조 검색도구 설정

이게 뭔지 나도 잘 모르겠다.

lucene 에 대한 자세한 설명은 홈페이지가서 각자 이해하자.

Welcome to Apache Lucene

 

사용자 인증 설정

게릿은 사용자 인증 기능을 제공하지 않는다.

대신에 외부 사용자 인증 기능을 연동할 수 있도록 하는데 이 연동 설정이다.

1. Authentication method : 우리는 apache 의 http 인증을 사용한다. http 라고 입력하고 엔터
2. Get username from custom HTTP header : 모르는건 그냥 엔터
3. SSO logout URL : logout 시 redirecting할 URL 인데 대부분 이런 로그아웃 페이지를 준비해두지 않는다. 그러니 그냥 로그인 페이지 그대로 넣으면 된다. 다만 http 에 무슨 버그가 있다나.. 그래서 aa:aa 를 넣어주란다.
4. Enable signed push support : 모르는건 그냥 엔터

 

이메일 설정

게릿이 인증, 통보 등의 각종 메일을 보낼 수 있도록 하기 위한 이메일 설정 단계다.

이를 위해 Gmail 을 하나 새로 팠다. (arigerrit.noreply@gmail.com)

(위 화면은 이미 한번 셋업한 상태라서 셋업된 value 들을 보여주고 있다. 셋업한적이 없다면 대괄호부분([]) 이 빈칸이다. 저 대괄호에 있는 정보들을 그대로 넣어주면 된다.)

gmail 의 경우 각 정보는 아래와 같다.

  1. smtp host : smtp.gmail.com
  2. encryption : TLS
  3. port : 587

Container 설정

1. Run as : 어느 user 로 서비스를 실행시킬것인지이다. 우리는 위에서 gerrit user 를 생성하였고 이녀석으로 모든 gerrit 을 컨트롤 할것이기때문에 gerrit 이라고 적고 엔터
2. Java runtime : 알아서 찾아준다. 그냥 엔터
3. Upgrading…. : 현재 셋업하고 있는 war 를 gerrit service 가 사용하는 war 에도 적용할것인지이다. 엔터

 

SSH Daemon 설정

address: 잘 모르니 pass
port : 양차장이  5052 로 셋팅해줌 (양차장은 우리팀 에이스다)

 

HTTP 설정

1. reverse proxy : 모르니 패스
2. Use SSL : https 를 사용할 것인지 단계. https 를 설정해주면 뭔가 또 해줘야 된다. 일단 패스
3. Listen on address: 우리 서버 IP 주소 - 192.168.0.99
4. Listen on port : 기본은 8080 이다. 그런데 우리는 8080을 이미 jenkins 아저씨가 사용하고 있다. 8081 로 변경 해준다. 이를 위해서는 뒤에서 apache 설정을 또 바꿔줘야 하는데 그건 별도 섹션으로 설명
5. Canonical URL : 대외적인 URL - 집에서 우리가 접속할때 사용할 주소 - 초창기에는 ip 주소 그대로 적어줬다. http://192.168.0.99:9001 (현재는 양차장이 작업해줘서 http://review/aribio.net 사용 )

 

Cache 삭제 설정

gerrit 이 사용했던 cache 를 지울것인지 확인.

그냥 다 엔터해도 되는데(이러면 디폴트 No ), 새로운 셋업을 하고났을때는 y 로 지워주는거 추천

 

플러그인 설치

게릿은 무수히 많은 플러그인이 있다. (별도 섹션으로 설명)
고맙게도 11개는 기본 플러그인인지 init 단계에서 설치할 기회를 준다.
다 설치한다.

 

끝~!

 

이제 게릿을 설치한 서버에서 브라우저를 열고

http://localhost:8081 을 열어 게릿에 접속하자. (localhost 부분은 타PC 에서는 서버 ip 로 대체되어야 한다. 아직 ip 설정 전이므로 서버에서는 그냥 localhost 로 접속가능하다)

로그인 아이디를 물어보면 성공적으로 설치된거다.

 

6. Gerrit 실행,중단

Gerrit 의 실행과 중단은 쉘 스크립트 파일로 정리되어 있다.

Gerrit 설치 폴더의 bin 폴더에 gerrit.sh 라는 쉘스크립트 파일이 있다.

실행과 중단은 이 쉘 스크립트에 인자를 주어 실행시키면 된다.

# 실행
$ ./gerrit.sh start

# 중단
$ ./gerrit.sh stop

# 재실행
$ ./gerrit.sh restart

 


기본적인 게릿 설치 및 설정을 끝냈다.

게릿 설정은 잘 모르겠으면 그냥 다 빈칸으로 놔둬도 된다. 하나씩 차근차근 추가로 설정하면 된다.

● 게릿이 웹 application 이다보니 웹 서버에 관한 지식 및 설정들이 필요하고 이 부분이 사전 지식이 전무한 나로서는 큰 걸림돌이었다.

● 향후 게릿을 구축할 계획이 있다면 웹서버 관련 지식을 습득하기를 권장한다.

혹시라도 입력을 잘못했다고 놀라거나 당황하지 말자. 수정할 방법을 제공 안하겠는가?
만약 수정이 필요하다면 다시 init 단계를 재수행해도 되고 직접 config 파일을 수정해도 된다.
게릿의 설정이 담겨진 config 파일은 gerrit설치폴더/etc/gerrit.conf 파일이다. (우리는 /opt/gerrit/gerrit/etc/gerrit.conf)
이 설정 파일을 열어서 필요에 맞게 수정해주면 된다. (셋업하다보면 지겹도록 열어보게 된다.)

 


Next >     2. Gerrit Web 설정

'Gerrit > Gerrit 설치 및 자체 작업' 카테고리의 다른 글

2. Gerrit Web 설정  (0) 2023.10.17
3. Gerrit 사용자 인증 설정  (0) 2023.10.17
4. Gerrit Email 설정  (0) 2023.10.17
5. Gerrit Repository 생성 및 삭제  (2) 2023.10.17