Promptcloud bada konfigurację integracji Gerrit i Jenkins

Opublikowany: 2017-01-20
Spis treści pokaż
Konfiguracja integracji za pomocą Gerrit i Jenkins
Co to jest Gerrit?
Co to jest Jenkins i jego zastosowania?
Przepływ pracy dla ciągłej integracji
1. Instalacja Gerrit
2. Pierwsze logowanie
3. Generowanie klucza SSH
4. Instalacja Jenkinsa
5. Rozpocznij proces Jenkinsa

Konfiguracja integracji za pomocą Gerrit i Jenkins

Życie programisty może stać się nieco monotonne przy powtarzalnych i skomplikowanych zadaniach. Na szczęście mamy narzędzia, które mogą regularnie obsługiwać przyziemne zadania bez narzekania po ich skonfigurowaniu. Po dodaniu automatyzacji do testowania i wdrażania rozwiązanie można nazwać „ciągłą integracją”. Taka konfiguracja może automatycznie testować i wdrażać projekty, dając więcej czasu na skupienie się na pisaniu kodu niż na wysyłaniu go na serwery. Oto, w jaki sposób możesz przejść do przodu z konfiguracją ciągłej integracji przy użyciu Gerrita i Jenkinsa . Konfiguracja CI za pomocą Gerrita i Jenkinsa

Co to jest Gerrit?

Gerrit to oparty na git system przeglądu kodu typu open source, który ma interfejs internetowy, który umożliwia przesyłanie zmian z klienta git, przeglądanie zmian i automatyczne łączenie z kodem głównym. Za każdym razem, gdy wprowadzana jest zmiana, tworzone są zestawy łat dla tego samego. Gerrit pozwala na różne porównania zestawów poprawek. Ma również opcję dodania opinii lub recenzji na temat określonych linii lub całego patcha. Recenzenci mogą ocenić zmiany jednym z poniższych: +2 – Wygląda mi dobrze, zaakceptowane. +1 – Wygląda dobrze, ale ktoś inny musi to zatwierdzić. 0 – Brak punktów. -1 – Wolałbym, żebyś tego nie przesyłał. -2 – Zablokuj przesyłanie. Ocena +2 oznacza, że ​​kod może być domyślnie przesłany do kapitana. Można to skonfigurować zgodnie z wymaganiami.

Co to jest Jenkins i jego zastosowania?

Jenkins to popularny serwer kompilacji używany do ciągłej integracji. Jest on oparty na sieci Web i umożliwia automatyzację procesu budowania w miarę pojawiania się zmian. Jenkins może pracować niezależnie, nawet bez Gita czy Gerrita. Ma zaczepy, które umożliwiają wyzwalanie zdarzeń, więc gdy nastąpi zmiana, kompilacja jest tworzona automatycznie. Kiedy Jenkins i Gerrit są używani razem, kompilacje będą miały znak sukcesu/porażki, wskazujący, czy przeszły testy. Jenkins uruchomi regresję testową po wykonaniu kompilacji. Po zakończeniu opublikuje wyniki testu, tak jak jeden z recenzentów. Jeśli kompilacja się nie powiedzie, poprawka zostanie odrzucona. Możesz ustawić -1 lub -2 w zależności od jakości CI w przypadku niepowodzenia testu. Wraz z tym inni recenzenci kodu mogą również przejrzeć kod w tym momencie. Jeśli wszystkie recenzje przeszły pomyślnie, kod można przekazać do publicznego repozytorium .

Przepływ pracy dla ciągłej integracji

  1. Programista pobiera źródło z Git
  2. Programista wprowadza wymagane zmiany
  3. Deweloper przesyła zmiany do Gerrit
  4. Gerrit wysyła powiadomienie o zmianie do Jenkinsa w celu przeprowadzenia testu integracyjnego
  5. Jenkins pobiera zmiany bezpośrednio z serwera git Gerrit i uruchamia wszystkie przypadki testowe zgodnie z konfiguracją naszego projektu
  6. Inni programiści przeglądają zmiany i zatwierdzają (+2)
  7. Gerrit łączy zmiany z głównym repozytorium git projektu, gdy Jenkins przejdzie kompilację, a zmiany zostaną zatwierdzone przez innych programistów

Konfiguracja integracji za pomocą przepływu pracy Gerrit i Jenkins 1. Instalacja Gerrit

  • Wymaganie: JRE, wersja minimalna 1.8.
  • Link do pobrania pakietu wojennego tGerrit

Jeśli masz MySQL, możesz go użyć do bazy danych Gerrit. Twórz użytkowników i bazy danych w MySQL for Gerrit.

mysql> CREATE USER 'gerrit2'@'localhost' IDENTYFIKOWANE PRZEZ 'secret';

mysql> CREATE DATABASE reviewdb;

mysql> PRZYZNAJ WSZYSTKO NA reviewdb.* TO 'gerrit2'@'localhost';

mysql> UPRAWNIENIA PŁUKANIA;

Teraz uruchom poniższe polecenie, aby zainicjować witrynę.

 # java -jar gerrit.war init –batch -d ~/

Podczas tej inicjalizacji usługa gerrit jest domyślnie uruchamiana. Jeśli chcesz wprowadzić jakiekolwiek zmiany, np. bazę danych mysql, uwierzytelnianie logowania, wysyłanie serwera e-mail i adres URL httpd, możesz edytować plik ~//etc/gerrit.config i dodać szczegóły hasła ldap i bazy danych w ~//etc/secure plik .config . W przypadku wprowadzenia jakichkolwiek zmian w ustawieniach, usługa gerrit musi zostać ponownie uruchomiona, zanim zaczną obowiązywać.

 # ~//bin/gerrit.sh restart

Skopiuj skrypt ~//bin/gerrit.sh do katalogu init.d jako gerrit i dodaj go, aby uruchamiał się podczas uruchamiania komputera.

2. Pierwsze logowanie

Teraz załaduj swój adres URL Gerrit w przeglądarce. Możesz również znaleźć internetowy adres URL Gerrit za pomocą tego polecenia.

# git config -f ~//etc/gerrit.config gerrit.canonicalWebUrl

Teraz użyj uwierzytelniania logowania przy użyciu metody, którą skonfigurowałeś w pliku konfiguracyjnym Gerrit, aby zalogować się do interfejsu sieciowego Gerrit. Domyślnie jest to OpenID. LDAP to jedna z najczęściej używanych metod uwierzytelniania.

Po pomyślnym zalogowaniu się na stronie internetowej Gerrit musisz zalogować się do komputera klienckiego, na którym będziesz programować. Musisz wygenerować klucze RSA dla swoich sesji ssh. Możesz pominąć etap generowania klucza, jeśli masz już pliki.

# ls -l ~/.ssh

Authorized_keys config id_rsa id_rsa.pub znane_hosty

3. Generowanie klucza SSH

# ssh-keygen -t rsa

Generowanie pary kluczy publiczny/prywatny rsa.

Wpisz plik, w którym chcesz zapisać klucz (/home/user/.ssh/id_rsa):

Wpisz hasło (puste, jeśli nie ma hasła):

Wprowadź ponownie to samo hasło:

Twoja identyfikacja została zapisana w /home/user/.ssh/id_rsa.

Twój klucz publiczny został zapisany w /home/user/.ssh/id_rsa.pub.

Kluczowy odcisk palca to:

SHA256:dMMVqsoLDf8T/d5Niob69oea3rkSLTBltiZ8s1lbdeA użytkownik@localhost

Losowy obraz klucza to:

+—[RSA 2048]—-+

| o… |

| .+o . o|

| ..+=. E..|

| .=o=.. . |

| . SB*o |

| = .. * o |

| . = . = . .|

| . o. +o++.+ |

| . o*=*Buu .|

+—-[SHA256]—–+

# kot ~/.ssh/id_rsa.pub

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAABAQCwoWTT6S1pv2LP0l6r8305njSLtoupDCw8Df
GnaqW+ppfzNMtRJmAvCQpYuvE154EsGZC5csnRkuYAScOD3nri8NBsXMdD+m1mMyD
lA4ssMLhWHfstJGQ5aj84NIR+zFK9o9QmDCVYU/
MYt2SZnmzi+Pdd4QbDWKisewmtun5rpy8vXWukKt9CHGTbv5lKyRVPF
LuQCynKbniZLV7aQD6gsVcZFG7Hj3ezBhDAZdBrCWLldy0S61DAmdH5C94xmlSuraq
HiX0pkLi4J67msvOUW6dBfeCP1VsMNz0j/
91LPlOMf5I2r1fRw1s/J1z/
UcsgBDyATwSKocNklkrd8+pp użytkownik@localhost

  • Skopiuj powyższy klucz publiczny i przejdź do swojego adresu URL gerrita
  • Sprawdź nazwę użytkownika w prawym rogu strony internetowej i kliknij swojego użytkownika, aby znaleźć link do ustawień
  • Po lewej stronie możesz znaleźć „Klucze publiczne SSH”, kliknij na nich
  • Teraz kliknij przycisk „Dodaj klucz”, wklej swój klucz publiczny ssh i dodaj go

Konfiguracja integracji za pomocą generatora kluczy Gerrit i Jenkins SSH Pierwszy użytkownik, który się zaloguje i zarejestruje konto, zostanie automatycznie przypisany do w pełni uprzywilejowanych administratorów. Teraz masz uprawnienia do tworzenia projektów. Kliknij zakładkę „Projekty” i kliknij „Utwórz nowe projekty”. Teraz wprowadź nazwę projektu, aby rozpocząć. Konfiguracja CI Proszę bardzo, sklonuj projekt w swoim systemie i zacznij dodawać swoje kody programistyczne. # ssh [email protected] -p 29418

**** Witamy w Gerrit Code Review **** Cześć selvam, udało Ci się połączyć przez SSH. Niestety powłoki interaktywne są wyłączone. Aby sklonować hostowane repozytorium Git, użyj: git clone ssh://[email protected]:29418/NAZWA_REPOZYTORIUM.git Połączenie z 192.168.56.137 zamknięte.

# git clone ssh: //[email protected] :29418/Gerrit_Test

4. Instalacja Jenkinsa

Możesz zainstalować jenkins za pomocą pakietu apt-get lub deb.

  • aktualizacja sudo apt-get
  • sudo apt-get install jenkis

Konfiguracja Jenkinsa znajduje się w /etc/default/jenkins, gdzie można zmienić lokalizację java i JAVA_ARGS. Domyślnie jenkins działa na 8080. Jeśli używasz gerrita i jenkina na tej samej maszynie, domyślny port 8080 jest już zajęty przez gerrita. Tutaj musisz zmienić port Jenkinsa. Aby to zmienić, edytuj wartość HTTP_PORT, aby działała na innym porcie.

5. Rozpocznij proces Jenkinsa

# /etc/init.d/jenkins start Przejdź do przeglądarki i załaduj stronę jenkins z nazwą hosta jenkins i numerem portu.

 https://:/

Jeśli zainstalowałeś Jenkins 2.*, strona internetowa Jenkins poprosi o początkowe hasło administratora. Hasło można znaleźć w pliku /var/log/jenkins/jenkins.log. Dziennik wygląda jak poniżej:

Wymagana jest początkowa konfiguracja Jenkinsa. Utworzono administratora i wygenerowano hasło. Aby przejść do instalacji, użyj następującego hasła: f16b093akcnml397jcdoa239d6bafb9 Można go również znaleźć pod adresem: /var/lib/jenkins/secrets/initialAdminPassword
  • Teraz przejdź do Jenkins -> Manage Jenkins -> Plugin Manager, aby zainstalować wtyczkę git i gerrit w jenkins
  • Kliknij kartę „Dostępne”, wyszukaj „ Wtyczka Git ” i kliknij „Zainstaluj bez ponownego uruchomienia”. Ponownie wyszukaj „ Gerrit Trigger” i kliknij „Instaluj bez restartu”. Na koniec sprawdź, czy znajduje się na zainstalowanej liście.

Konfiguracja integracji za pomocą wtyczki Gerrit i Jenkins Proces Jenkinsa jest uruchamiany przez użytkownika Jenkinsa. Musimy więc umożliwić dostęp dla użytkownika jenkins w gerrit.

  • Używając swojej metody uwierzytelniania, utwórz użytkownika Jenkins w gerrit
  • Teraz utwórz ssh-keygen dla użytkownika jenkins, tak jak to zrobiliśmy poprzednio. Ale tym razem utwórz klucz z pustym hasłem i skopiuj klucz publiczny dla użytkownika jenkins w gerrit
  • Teraz kliknij „Nowa pozycja”, aby utworzyć nowe zadanie i dodaj swój adres url git w sekcji Zarządzanie kodem źródłowym/Git. Wybierz także „Zdarzenie Gerrit” w wyzwalaczach kompilacji i wprowadź wzorzec projektu Gerrit.

Konfiguracja integracji za pomocą Gerrit i Jenkins EventWydarzenie integracyjne CI Na koniec Zapisz konfigurację. Idealnie, twoja konfiguracja Gerrita i Jenkinsa jest teraz zakończona.