Promptcloud исследует настройку интеграции Gerrit и Jenkins
Опубликовано: 2017-01-20Настройка интеграции с помощью Gerrit и Jenkins
Жизнь разработчика может стать немного монотонной из-за повторяющихся и сложных задач. К счастью, у нас есть инструменты, которые могут регулярно справляться с мирскими задачами без каких-либо жалоб после их настройки. Когда вы добавляете автоматизацию к тестированию и развертыванию, решение можно назвать «непрерывной интеграцией». Такая установка может автоматически тестировать и развертывать проекты, давая вам больше времени, чтобы сосредоточиться на написании кода, а не на отправке его на серверы. Вот как можно продвигаться вперед с настройкой непрерывной интеграции с помощью Gerrit и Jenkins . 
Что такое Геррит?
Gerrit — это основанная на git система проверки кода с открытым исходным кодом, имеющая веб-интерфейс, который позволяет вам отправлять изменения из клиента git, просматривать изменения и автоматически объединяться с основным кодом. Каждый раз, когда вносится изменение, создаются наборы исправлений для одного и того же. Gerrit позволяет сравнивать различные наборы исправлений. У него также есть возможность добавить отзыв или обзор на определенные строки или на весь патч. Рецензенты могут оценить изменения одним из следующих пунктов: +2 — Мне нравится, одобрено. +1 — Мне кажется, хорошо, но кто-то другой должен одобрить. 0 – нет баллов. -1 - Я бы предпочел, чтобы вы не отправляли это. -2 — Заблокировать отправку. Проверка +2 означает, что код может быть отправлен мастеру по умолчанию. Это можно настроить по мере необходимости.
Что такое Дженкинс и его использование?
Jenkins — популярный сервер сборки, используемый для непрерывной интеграции. Он основан на веб-интерфейсе и позволяет автоматизировать процесс сборки по мере внесения изменений. Дженкинс может работать независимо, даже без Git или Gerrit. В нем есть хуки, которые позволяют запускать события, поэтому, когда происходит изменение, сборка выполняется автоматически. Когда Jenkins и Gerrit используются вместе, сборки будут иметь отметку успеха/неудачи, чтобы указать, прошли ли они тесты. Дженкинс запустит тестовую регрессию после выполнения сборки. После завершения он опубликует результаты теста, как и один из рецензентов. В случае сбоя сборки патч будет отклонен. Вы можете установить либо -1, либо -2 в зависимости от качества вашего ЭК в случае сбоя теста. Наряду с этим другие рецензенты кода также могут просматривать код на этом этапе. Если все проверки прошли, код можно отправить в публичный репозиторий .
Рабочий процесс для непрерывной интеграции
- Разработчик проверяет исходный код из Git
- Разработчик вносит необходимые изменения
- Разработчик вносит изменения в Gerrit
- Геррит отправляет Дженкинсу уведомление об изменении для интеграционного теста
- Jenkins извлекает изменения непосредственно с сервера Gerrit git и запускает все тестовые случаи в соответствии с конфигурацией нашего проекта.
- Другие разработчики рассматривают изменения и одобряют (+2)
- Gerrit объединяет изменения в репозиторий git основного проекта, когда Jenkins проходит сборку и изменения утверждаются другими разработчиками.
1. Установка Геррита
- Требование: JRE, минимальная версия 1.8.
- Ссылка для загрузки военного пакета tGerrit
Если у вас есть MySQL, вы можете использовать его для базы данных Gerrit. Создайте пользователей и базы данных в MySQL для Gerrit.
mysql> СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'gerrit2'@'localhost', ОПРЕДЕЛЕННОГО 'secret';
mysql> СОЗДАТЬ БАЗУ ДАННЫХ reviewdb;
mysql> GRANT ALL ON reviewdb.* TO 'gerrit2'@'localhost';
mysql> УДАЛИТЬ ПРИВИЛЕГИИ;
Теперь запустите приведенную ниже команду, чтобы инициализировать сайт.
# java -jar gerrit.war init –batch -d ~/Во время этой инициализации служба gerrit запускается по умолчанию. Если вы хотите внести какие-либо изменения, например базу данных mysql, аутентификацию входа, сервер отправки электронной почты и URL-адрес httpd, вы можете отредактировать файл ~//etc/gerrit.config и добавить сведения о пароле ldap и базе данных в ~//etc/secure . .конфигурационный файл. При внесении каких-либо изменений в настройки службу gerrit необходимо перезапустить, прежде чем они вступят в силу.
# ~//bin/gerrit.sh перезапуститьСкопируйте скрипт ~//bin/gerrit.sh в каталог init.d как gerrit и добавьте его для запуска при загрузке машины.
2. Первоначальный вход в систему
Теперь загрузите URL-адрес Gerrit в браузере. Вы также можете найти веб-URL Gerrit, используя эту команду.
# git config -f ~//etc/gerrit.config gerrit.canonicalWebUrl
Теперь используйте аутентификацию при входе, используя метод, который вы настроили в конфигурационном файле Gerrit, для входа в веб-интерфейс Gerrit. По умолчанию это OpenID. LDAP — один из наиболее часто используемых методов аутентификации.
После того, как вы успешно вошли на веб-страницу Gerrit, вы должны войти на свой клиентский компьютер, где вы будете выполнять разработку. Вы должны сгенерировать ключи RSA для своих сеансов ssh. Вы можете пропустить шаг генерации ключа, если у вас уже есть файлы.

# ls -l ~/.ssh
конфигурация author_keys id_rsa id_rsa.pub known_hosts
3. Генерация SSH-ключа
# ssh-keygen -t rsa
Генерация пары открытый/закрытый ключ rsa.
Введите файл для сохранения ключа (/home/user/.ssh/id_rsa):
Введите кодовую фразу (пусто, если нет парольной фразы):
Введите тот же пароль еще раз:
Ваша идентификация сохранена в /home/user/.ssh/id_rsa.
Ваш открытый ключ сохранен в /home/user/.ssh/id_rsa.pub.
Ключевой отпечаток пальца:
SHA256: dMMVqsoLDf8T/d5Niob69oea3rkSLTBltiZ8s1lbdeA user@localhost
Случайное изображение ключа:
+—[RSA 2048]—-+
| о… |
| .+о . о |
| ..+=. Э..|
| .=о=.. . |
| . СБ * о |
| = .. * о |
| . знак равно знак равно .|
| . о. +о++.+ |
| . о*=*Бу .|
+—-[SHA256]——+
# кошка ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAAADAQABAAABAQCwoWTT6S1pv2LP0l6r8305njSLtoupDCw8Df
GnaqW+ppfzNMtRJmAvCQpYuvE154EsGZC5csnRkUYAScOD3nri8NBsXMdD+m1mMyD
LA4ssMLhWHfstJGQ5aJ84NIR+zFK9o9QmDCVYU/
MYt2SZnmzi+Pdd4QbDWKisewmtun5rpy8vXWukKt9CHGTbv5lKyRVPF
LuQCynKbniZLV7aQD6gsVcZFG7Hj3ezBhDAZdBrCWLldy0S61DAmdH5C94xmlSuraq
HiX0pkLi4J67msvOUW6dBfeCP1VsMNz0j/
91LPlOMf5I2r1fRw1s/J1z/
UcsgBDyATwSKocNklkrd8+pp user@localhost
- Скопируйте приведенный выше открытый ключ и перейдите на веб-адрес gerrit.
- Проверьте имя пользователя в правом углу веб-страницы и нажмите на своего пользователя, чтобы найти ссылку настроек.
- В левой части вы можете найти «Открытые ключи SSH», нажмите на него.
- Теперь нажмите кнопку «Добавить ключ», вставьте свой открытый ключ ssh и добавьте его.
Первый пользователь, который войдет в систему и зарегистрирует учетную запись, будет автоматически помещен в группу администраторов с полными правами. Теперь у вас есть права на создание проектов. Перейдите на вкладку «Проекты» и нажмите «Создать новые проекты». Теперь введите имя проекта, чтобы начать.
Вот и все, клонируйте проект в своей системе и начните добавлять свои коды разработки. # ssh [email protected] -p 29418
| **** Добро пожаловать в Gerrit Code Review **** Привет, Selvam, вы успешно подключились через SSH. К сожалению, интерактивные оболочки отключены. Чтобы клонировать размещенный репозиторий Git, используйте: git clone ssh://[email protected]:29418/REPOSITORY_NAME.git Соединение с 192.168.56.137 закрыто. |
# git clone ssh: //[email protected] :29418/Gerrit_Test
4. Установка Дженкинса
Вы можете установить jenkins с помощью пакета apt-get или deb.
- sudo apt-получить обновление
- sudo apt-get установить Дженкинса
Конфигурация Jenkins находится в /etc/default/jenkins, где вы можете изменить местоположение Java и JAVA_ARGS. По умолчанию jenkins работает на 8080. Если вы используете gerrit и jenkins на одном компьютере, порт 8080 по умолчанию уже занят gerrit. Здесь вам нужно изменить порт jenkins. Чтобы изменить его, отредактируйте значение HTTP_PORT для запуска на другом порту.
5. Запустите процесс Дженкинса
# /etc/init.d/jenkins start Перейдите в свой браузер и загрузите страницу jenkins с вашим именем хоста jenkins и номером порта.
https://:/
Если вы установили Jenkins 2.*, веб-страница jenkins запросит начальный пароль администратора. Вы можете найти пароль в файле /var/log/jenkins/jenkins.log. Журнал выглядит следующим образом:
| Требуется первоначальная настройка Jenkins. Был создан пользователь admin и сгенерирован пароль. Пожалуйста, используйте следующий пароль, чтобы продолжить установку: f16b093akcnml397jcdoa239d6bafb9 Его также можно найти по адресу: /var/lib/jenkins/secrets/initialAdminPassword |
- Теперь перейдите в Jenkins -> Manage Jenkins -> Plugin Manager, чтобы установить плагин git и gerrit в jenkins.
- Перейдите на вкладку «Доступно», найдите « Git Plugin » и нажмите «Установить без перезагрузки». Снова найдите « Gerrit Trigger» и нажмите «Установить без перезагрузки». Наконец, проверьте, есть ли он в списке установленных.
Процесс Jenkins запускается пользователем jenkins. Итак, нам нужно разрешить доступ для пользователя jenkins в gerrit.
- Используя свой метод аутентификации, создайте пользователя jenkins в gerrit
- Теперь создайте ssh-keygen для пользователя jenkins, как мы это делали ранее. Но на этот раз создайте ключ с пустым паролем и скопируйте открытый ключ для пользователя jenkins в gerrit.
- Теперь нажмите «Новый элемент», чтобы создать новое задание, и добавьте URL-адрес git в раздел «Управление исходным кодом/Git». Кроме того, выберите «Gerrit event» в триггерах сборки и введите шаблон проекта Gerrit.

Наконец, сохраните конфигурацию. Отлично, ваша установка Геррита и Дженкинса завершена.
