1. JDK 설치

   - http://whatwant.tistory.com/660


2. PostgreSQL 설치

$ sudo apt-get install postgresql



3. Apache

   - Proxy 기능이 필요하므로 해야할 일이 조금 더 있다.

$ sudo apt-get install apache2 libapache2-mod-proxy-html

$ sudo a2enmod proxy
$ sudo a2enmod proxy_http
$ sudo service apache2 restart



4. Git

   - http://whatwant.tistory.com/658


5. Download

   - 최근 사이트가 변경되면서... 웹사이트에서 다운로드 페이지 등의 호환성에서 IE는 잘 안되는 경우가 있다.
   - 다운로드는 잘 되니 그냥 아래와 같이 수행하면 된다.



6. DB 계정 및 db 생성

$ sudo su - postgres

$ createuser -A -D -P -E gerrit2
$ createdb -E UTF-8 -O gerrit2 reviewdb

$ exit


7. Gerrit 운영 계정 생성

$ cd /srv/install/gerrit

$ sudo adduser gerrit2
$ sudo chown -R gerrit2:gerrit2 /srv/install/gerrit/


8. 설치하기

$ sudo su gerrit2
$ cd /srv/install/gerrit

$ java -jar ./gerrit-2.8.4.war init -d /srv/install/gerrit/workspace

 

*** Gerrit Code Review 2.8.4
***

Create '/srv/install/gerrit/workspace' [Y/n]?  (Enter)

*** Git Repositories
***

Location of Git repositories   [git]: repositories

*** SQL Database
***

Database server type           [h2]: postgresql
Server hostname                [localhost]: (Enter)
Server port                    [(POSTGRESQL default)]: (Enter)
Database name                  [reviewdb]: (Enter)
Database username              [gerrit2]: (Enter)
gerrit2's password             : (passwd)
              confirm password : (passwd)

*** User Authentication
***

Authentication method          [OPENID/?]: http
Get username from custom HTTP header [y/N]? (Enter)
SSO logout URL                 : (Enter)

*** Email Delivery
***

SMTP server hostname           [localhost]: smtp.gmail.com
SMTP server port               [(default)]: 587
SMTP encryption                [NONE/?]: (Enter)
SMTP username                  [gerrit2]:  xxx@gmail.com
   @gmail.com's password  : (passwd)
              confirm password : (passwd)

*** Container Process
***

Run as                         [gerrit2]: (Enter)
Java runtime                   [/usr/local/java/jdk1.7.0_55/jre]: (Enter)
Copy gerrit-2.8.war to /srv/install/gerrit/workspace/bin/gerrit.war [Y/n]? (Enter)
Copying gerrit-2.8.war to /srv/install/gerrit/workspace/bin/gerrit.war

*** SSH Daemon
***

Listen on address              [*]: (Enter)
Listen on port                 [29418]: (Enter)

Gerrit Code Review is not shipped with Bouncy Castle Crypto v144
  If available, Gerrit can take advantage of features
  in the library, but will also function without it.
Download and install it now [Y/n]? (Enter)
Downloading http://www.bouncycastle.org/download/bcprov-jdk16-144.jar ... OK
Checksum bcprov-jdk16-144.jar OK
Generating SSH host key ... rsa... dsa... done

*** HTTP Daemon
***

Behind reverse proxy           [y/N]? (Enter)
Use SSL (https://)             [y/N]? (Enter)
Listen on address              [*]: (Enter)
Listen on port                 [8080]: (Enter)
Canonical URL                  [http://chani-VBox:8080/]: http://localhost:8080/

*** Plugins
***

Install plugin reviewnotes version v2.8.4 [y/N]? y
Install plugin download-commands version v2.8.4 [y/N]? y
Install plugin replication version v2.8.4 [y/N]? y
Install plugin commit-message-length-validator version v2.8.4 [y/N]? y

Initialized /srv/install/gerrit/workspace
Executing /srv/install/gerrit/workspace/bin/gerrit.sh start
Starting Gerrit Code Review: OK
Waiting for server on localhost:8080 ... OK
Opening http://localhost:8080/#/admin/projects/ ...No protocol specified
No protocol specified
OK

     - 나중에 설정 내용은 변경할 수 있으므로 최대한 기본값으로 정했다.


9. Apache Configuration

$ sudo su gerrit2

$ htpasswd -c /srv/install/gerrit/workspace/etc/passwords "admin"

$ exit

 

$ sudo nano /etc/apache2/sites-available/gerrit2

 

<VirtualHost *:8080>
        ServerName localhost

        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
                AuthUserFile /srv/install/gerrit/workspace/etc/passwords
        </Location>

        AllowEncodedSlashes On
        ProxyPass / http://127.0.0.1:8081/ nocanon

</VirtualHost>


     - 추가로 sites-enabled 디렉토리에 동적링크도 만들어주자.

$ cd /etc/apache2/sites-enabled
$ sudo ln -s ../sites-available/gerrit2 ./001-gerrit2


     - 위와 같이 설정을 하였으면 Apache의 port 설정에도 추가해줘야 한다.

$ sudo nano /etc/apache2/ports.conf


NameVirtualHost *:8080
Listen 8080


     - 위와 같이 8081 포트에 대해서 설정을 추가로 적어주면 된다.

$ sudo service apache2 restart

 
     - gerrit 의 설정값도 다시 한 번 살펴봐야 한다.

$ sudo su gerrit2

$ nano /srv/install/gerrit/workspace/etc/gerrit.config


[gerrit]
        basePath = repositories
        canonicalWebUrl = http://localhost:8080/
[database]
        type = postgresql
        hostname = localhost
        database = reviewdb
        username = gerrit2
[auth]
        type = HTTP
[sendemail]
        smtpServer = smtp.gmail.com
        smtpServerPort = 587
        smtpUser = xxx@gmail.com
[container]
        user = gerrit2
        javaHome = /usr/local/java/jdk1.7.0_55/jre
[sshd]
        listenAddress = *:29418
[httpd]
        listenUrl = proxy-http://127.0.0.1:8081/
[cache]
        directory = cache

 

$ sudo su gerrit2

$ cd /srv/install/gerrit/workspace/
$ ./bin/gerrit.sh restart


     - [ http://localhost:8080 ] 주소로 접속을 하면 위와 같이 이름과 암호를 물어본다.
     - 앞에서 "htpasswd"로 만든 계정을 이용해서 로그인하면 된다.


     - 드디어 길고 긴 과정을 거쳐서 gerrit의 화면이 나왔다.



9. 후기

     - 최근 시스템을 구축하면서 Gerrit에 대해서 활용팁(?) 등을 많이 얻었는데,
       집에서 테스트 해보기 위해 우선 예전 설치 방식으로 설치를 다시 한 번 진행해보았다.
     - 앞으로 Gerrit과 관련된 다른 내용을 추가해보도록 하겠다.

반응형

+ Recent posts