이 문서는 Gerrit 코드리뷰(Code Review) 설치 가이드 1부 - 준비에 이어서 2부 Http 인증 설정에 대하여 다룬다.
앞의 1부 - 준비에서 설명한데로, Gerrit 접속하기 위해서는 인증 방식을 선택할 필요가 있다. 인증 방식은 openid, openid_sso, http, http_ldap, ldap 등이 있지만, 이 문서에서는 http 인증을 사용하기 위한 설정 부분을 다룬다. Gerrit의 설치가 까다롭게 느껴지는 이유가 이 인증에 대한 부분이 생소하기 때문이 아닐까 싶다.
1. Http 인증을 위한 VirtualHost Proxy 설정
앞의 1부에서 Gerrit에 접속하기 위해서 Hosts를 수정하였다. 만약 사용자가 http://gerrit.pseg.org(이때 포트는 80이다)로 접속할 경우, Apache에서 인증 처리를 하고 Gerrit 서버(이 포트는 8080으로 할 예정이다)로 넘겨준다. HTTP 인증을 위해 Apache 외의 다른 좋은 방법이 있겠지만, Apache 또한 이러한 사항을 고려할 수 있게 잘 만들어져 있고 널리 사용되고 있기에 원하는 정보를 찾기가 편해서 선택을 했다.
1.1 VirtualHost 작성
먼저 sites-available에 gerrit을 위한 VirtualHost 파일을 작성한다.
$ sudo nano /etc/apache2/sites-available/gerrit
그리고 아래 설정을 입력한다. 여기서 주의할 점은 "/"의 누락, "passwords" 파일 경로 틀리지 않게 정확하게 작성해야 한다. 가급적이면, 아래를 복사하던가 Apache default에서 제공하는 예제 파일을 복사하여 수정한다.
<VirtualHost *:80>
ServerName gerrit.pseg.org
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location /login/>
AuthType Basic
AuthName "Gerrit Code Review"
Require valid-user
# 인증 파일은 Gerrit이 설치될 경로에 따라 달라질 수 있다.
AuthUserFile /home/pseg/gerrit/etc/passwords
</Location>
ProxyPass / http://127.0.0.1:8080/
</VirtualHost>
ServerName, 인증 파일 경로, ProxyPass 등 모든 사항이 정확하게 입력되었는지 다시 한번 확인한다. 대부분의 Gerrit 접속이 안되는 이유는 여기서 발생한다.
1.2 Apache에 Site-enabled 설정
실제 운영에 사용하기 위해, sites-available에서 설정한 파일을 site-enabled에 심볼릭 링크로 추가한다.
심볼릭 링크 생성
파일이름과 경로가 정확한지 확인하고 아래처럼 명령을 수행하여 심볼릭 링크를 생성한다.
$ cd /etc/apache2/site-enabled
$ sudo ln -s ../sites-available/gerrit ./001-gerrit
2. Gerrit 사용자 등록
이제 Gerrit으로 접속할 사용자를 생성할 차례이다. 이 과정은 Gerrit이 설치되고 난 후에 진행해도 된다. passwords 파일의 위치 또한 apache가 접근할 수 있는 위치면 상관없는 듯하다. 필자의 경우는 gerrit이 설치될 위치에 생성하였다.
관리자 계정 admin을 생성
$ htpasswd -c /home/pseg/gerrit/etc/passwords "admin"
3. Apache 재시작
이제 모든 설정이 완료되었으며, 설정을 반영하기 위해서, apache2를 재시작한다.
$ sudo service apache2 restart
앞에서도 잠깐 언급을 하였지만, Http 인증을 위한 VirtualHost 설정 및 사용자 등록은 Gerrit이 설치된 후에 진행해도 된다. 하지만, Gerrit이 초기 설치 후에 바로 구동되고 이때 접속을 하기위해, 이 부분을 먼저 설정 하였다.
이것으로 1부에 이어 2부를 마치며, Gerrit을 설치하기 위한 모든 준비가 완료되었다. 이어 3부에서 Gerrit 설치에 대한 부분에 대하여 설명을 하겠다.