Установка Gerrit c авторизацией через basic-http.

Что такое gerrit можно узнать например из Википепдии, мы же будем его устанавливать. Прежде чем приступить к установке gerrit необходимо убедиться, что на сервере установлен git и java, это сделать не сложно, если сложно, можно дальше просто не читать.

Создадим директорию для работы с gerrit

mkdir ~/gerrit
cd ~/gerrit

Качаем последнюю версию gerrit с GoogleCode.

wget https://www.gerritcodereview.com/download/gerrit-2.13.5.war

Запускаем gerrit c опцией init, указывающей на новую инсталляцию gerrit, параметрами -b устанавливающим gerrit с параметрами по умолчанию, и -d директорию для хранения файлов. Более подробно со всеми параметрами можно ознакомится тут.

java -jar gerrit-2.13.5.war init -b -d files
user@host:~/gerrit$ java -jar gerrit-2.13.5.war init --batch -d files
[2017-02-15 15:40:13,075] [main] INFO  com.google.gerrit.server.config.GerritServerConfigProvider : No ~/gerrit/files/etc/gerrit.config; assuming defaults
Generating SSH host key ... rsa(simple)... done
Initialized ~/gerritnew/files
Executing ~/gerritnew/files/bin/gerrit.sh start
Starting Gerrit Code Review: OK

Gerrit запущен. И доступен по адресу http://localhost:8080

Запуск\остановка gerrit возможна скриптом ~/gerrit/files/bin/gerrit.sh start\stop

Давайте авторизоваться. По умолчанию gerrit настрое на авторизацию через OpenID.

— What is OpenID?
— Очевидно, то, что нам не нужно:-)

Мы будем использовать HTTP Basic Authentication.

Поэтому в конфигурационном файле ~/gerrit/files/etc/gerrit.config

Меняем директиву type в секции auth на HTTP

[auth]
    type = HTTP

Далее генерируем файл с паролями, для этого нам понадобится htpasswd.

user@host:~$ htpasswd -c pass_gerrit admin
New password: 
Re-type new password: 
Adding password for user admin

Настраиваем nginx в качестве front-end к gerrit

server {
    listen 127.0.0.1:8083;
    server_name localhost;
 
    location / {
        proxy_pass   http://127.0.0.1:8080;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        auth_basic        	"Restricted";
        auth_basic_user_file  /etc/nginx/pass_gerrit;
    }
}

Перезапустим nginx и в браузере переходим на http://127.0.0.1:8083

Авторизуемся нашим созданным пользователем. Нужно заметить, что первый зарегистрированный аккаунт становится администратором.

На этом установка gerrit завершена.