다른 포스트에서 이어집니다.
이전 포스트에서 삽질했던 GIT 저장소에 대한 내용을 gerrit에서 직접적으로 사용하진 않습니다.
설치
유틸 설치
- JDK7 이상
- Apache2
- Database
H2
,Apache Derby
,PostgreSQL
,MySQL
,Oracle
,SAP MaxDB
,DB2
중 하나를 사용하면 된다.H2
를 사용하면 gerrit의 기본 database라서 따로 설정할 것이 없다.
|
gerrit 설치
- https://gerrit-releases.storage.googleapis.com/index.html 의 Release Notes를 통해 war 경로를 확인할 수 있다. 16년 8월 현재 최신버전은 2.12.3.
우선, gerrit을 위해 ‘gerrit’ 이라는 user를 하나 생성하였다.
설치 파일을 아래의 wget
명령어로 download받을 수 있으며, ~/Downloads
디렉토리를 생성하여 그곳에 받았다.
|
설치한다. init -d
이후의 경로는 설치하고 싶은 경로를 지정한다.
|
나의 경우 설치 과정은 다음과 같다.
|
위의 설정사항은 설치디렉토리/etc/gerrit.config
에 저장된다.
Index rebuilt
잘은 모르겠지만 검색 엔진에 대한 색인 과정인 것 같다. 이 명령어를 수행해줘야 하는 것 같다.
|
Gerrit 실행
|
실행은 됐는데 브라우저로 확인할 수가 없다.
apache 설정을 할 차례가 됐다.
apache proxy 설정
VirtualHost 파일 생성
|
|
Site-enabled 설정
|
기본 설정파일의 포트를 변경
포트 충돌로 인해 gerrit이 로딩이 안될 수 있으므로, sudo vim /etc/apache2/sites-available/000-default.conf
파일의 포트를 80에서 10080 등으로 변경한다.
|
Gerrit 사용자 등록
관리자 계정을 생성한다.
htpasswd
로 생성하는 계정은 apache에서 인증을 위해 사용하는 계정이며, gerrit은 처음 생성된 계정(uid 1000000)을 administrator로 인식한다.
|
Apache 재시작 및 gerrit 재시작
|
이후 접속을 시도하면, 사용자 이름 및 비밀번호를 묻는다.
위에서 설정한 admin / password 를 넣는다.
로그인 된다.
그런데 브라우저에따라 sign out이 안 되는 문제가 있다.
이 문제의 해결을 위해서는 설치 시 logout URL을 http://aa:aa@192.168.0.99:80/login/
처럼 넣어주면 된다. aa:aa 는 문자 그대로 aa:aa 그대로 넣어주면 된다.
이게 조금 이상한 버그인게… 사람마다 아래 중 하나로 해야 해결되는 케이스가 있다고 한다.
- http://aa:aa@192.168.0.99
- http://aa:aa@192.168.0.99:80 # 포트까지
- http://aa:aa@192.168.0.99:80/login/ # 뒤의 경로까지
logout URL을 처음에 설정을 못 하였다면 /etc/gerrit.config
파일을 열고 [auth]
아래에 다음과 같이 추가하면 된다.
|
sign out이 안되는 문제의 기본적인 원인은 HTTP의 특성 (https://groups.google.com/forum/?fromgroups=#!topic/repo-discuss/7P73ZvK4OQQ 참조)이라고 한다. auth type을 다른 것들(oAuth, OpenID, etc.)로 지정하면 이런 문제는 발생하지 않는 듯 하다.