Promptcloud исследует настройку интеграции Gerrit и Jenkins

Опубликовано: 2017-01-20
Оглавление показать
Настройка интеграции с помощью Gerrit и Jenkins
Что такое Геррит?
Что такое Дженкинс и его использование?
Рабочий процесс для непрерывной интеграции
1. Установка Геррита
2. Первоначальный вход в систему
3. Генерация SSH-ключа
4. Установка Дженкинса
5. Запустите процесс Дженкинса

Настройка интеграции с помощью Gerrit и Jenkins

Жизнь разработчика может стать немного монотонной из-за повторяющихся и сложных задач. К счастью, у нас есть инструменты, которые могут регулярно справляться с мирскими задачами без каких-либо жалоб после их настройки. Когда вы добавляете автоматизацию к тестированию и развертыванию, решение можно назвать «непрерывной интеграцией». Такая установка может автоматически тестировать и развертывать проекты, давая вам больше времени, чтобы сосредоточиться на написании кода, а не на отправке его на серверы. Вот как можно продвигаться вперед с настройкой непрерывной интеграции с помощью Gerrit и Jenkins . Настройка CI с использованием Gerrit и Jenkins

Что такое Геррит?

Gerrit — это основанная на git система проверки кода с открытым исходным кодом, имеющая веб-интерфейс, который позволяет вам отправлять изменения из клиента git, просматривать изменения и автоматически объединяться с основным кодом. Каждый раз, когда вносится изменение, создаются наборы исправлений для одного и того же. Gerrit позволяет сравнивать различные наборы исправлений. У него также есть возможность добавить отзыв или обзор на определенные строки или на весь патч. Рецензенты могут оценить изменения одним из следующих пунктов: +2 — Мне нравится, одобрено. +1 — Мне кажется, хорошо, но кто-то другой должен одобрить. 0 – нет баллов. -1 - Я бы предпочел, чтобы вы не отправляли это. -2 — Заблокировать отправку. Проверка +2 означает, что код может быть отправлен мастеру по умолчанию. Это можно настроить по мере необходимости.

Что такое Дженкинс и его использование?

Jenkins — популярный сервер сборки, используемый для непрерывной интеграции. Он основан на веб-интерфейсе и позволяет автоматизировать процесс сборки по мере внесения изменений. Дженкинс может работать независимо, даже без Git или Gerrit. В нем есть хуки, которые позволяют запускать события, поэтому, когда происходит изменение, сборка выполняется автоматически. Когда Jenkins и Gerrit используются вместе, сборки будут иметь отметку успеха/неудачи, чтобы указать, прошли ли они тесты. Дженкинс запустит тестовую регрессию после выполнения сборки. После завершения он опубликует результаты теста, как и один из рецензентов. В случае сбоя сборки патч будет отклонен. Вы можете установить либо -1, либо -2 в зависимости от качества вашего ЭК в случае сбоя теста. Наряду с этим другие рецензенты кода также могут просматривать код на этом этапе. Если все проверки прошли, код можно отправить в публичный репозиторий .

Рабочий процесс для непрерывной интеграции

  1. Разработчик проверяет исходный код из Git
  2. Разработчик вносит необходимые изменения
  3. Разработчик вносит изменения в Gerrit
  4. Геррит отправляет Дженкинсу уведомление об изменении для интеграционного теста
  5. Jenkins извлекает изменения непосредственно с сервера Gerrit git и запускает все тестовые случаи в соответствии с конфигурацией нашего проекта.
  6. Другие разработчики рассматривают изменения и одобряют (+2)
  7. Gerrit объединяет изменения в репозиторий git основного проекта, когда Jenkins проходит сборку и изменения утверждаются другими разработчиками.

Настройка интеграции с использованием рабочего процесса Gerrit и 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 и добавьте его.

Настройка интеграции с помощью генератора ключей Gerrit и Jenkins SSH Первый пользователь, который войдет в систему и зарегистрирует учетную запись, будет автоматически помещен в группу администраторов с полными правами. Теперь у вас есть права на создание проектов. Перейдите на вкладку «Проекты» и нажмите «Создать новые проекты». Теперь введите имя проекта, чтобы начать. настройка CI Вот и все, клонируйте проект в своей системе и начните добавлять свои коды разработки. # 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» и нажмите «Установить без перезагрузки». Наконец, проверьте, есть ли он в списке установленных.

Настройка интеграции с использованием плагина Gerrit и Jenkins Процесс Jenkins запускается пользователем jenkins. Итак, нам нужно разрешить доступ для пользователя jenkins в gerrit.

  • Используя свой метод аутентификации, создайте пользователя jenkins в gerrit
  • Теперь создайте ssh-keygen для пользователя jenkins, как мы это делали ранее. Но на этот раз создайте ключ с пустым паролем и скопируйте открытый ключ для пользователя jenkins в gerrit.
  • Теперь нажмите «Новый элемент», чтобы создать новое задание, и добавьте URL-адрес git в раздел «Управление исходным кодом/Git». Кроме того, выберите «Gerrit event» в триггерах сборки и введите шаблон проекта Gerrit.

Настройка интеграции с использованием событий Gerrit и JenkinsСобытие интеграции CI Наконец, сохраните конфигурацию. Отлично, ваша установка Геррита и Дженкинса завершена.