Promptcloud untersucht Gerrit und Jenkins Integration Setup

Veröffentlicht: 2017-01-20
Inhaltsverzeichnis anzeigen
Integrationssetup mit Gerrit und Jenkins
Was ist Gerrit?
Was ist Jenkins und seine Verwendung?
Arbeitsablauf für kontinuierliche Integration
1. Installation von Gerrit
2. Erstanmeldung
3. Generierung von SSH-Schlüsseln
4. Installation von Jenkins
5. Starten Sie den Jenkins-Prozess

Integrationssetup mit Gerrit und Jenkins

Das Leben eines Entwicklers kann mit den sich wiederholenden und komplizierten Aufgaben etwas eintönig werden. Zum Glück haben wir Tools, die die alltäglichen Aufgaben regelmäßig erledigen können, ohne sich jemals zu beschweren, sobald Sie sie eingerichtet haben. Wenn Sie das Testen und Bereitstellen automatisieren, kann die Lösung als „kontinuierliche Integration“ bezeichnet werden. Ein solches Setup kann Projekte automatisch testen und bereitstellen, sodass Sie mehr Zeit haben, sich auf das Schreiben von Code zu konzentrieren, anstatt ihn auf die Server zu übertragen. Hier erfahren Sie, wie Sie mit Gerrit und Jenkins ein Continuous-Integration-Setup vorantreiben können. CI-Setup mit Gerrit und Jenkins

Was ist Gerrit?

Gerrit ist ein Git-basiertes Open-Source-Codeüberprüfungssystem mit einer webbasierten Schnittstelle, mit der Sie Änderungen von einem Git-Client übertragen, Änderungen überprüfen und automatisch mit dem Mastercode zusammenführen können. Jedes Mal, wenn eine Änderung vorgenommen wird, werden Patch-Sets für dieselbe erstellt. Gerrit erlaubt verschiedene Patchset-Vergleiche. Es hat auch die Möglichkeit, Feedback oder Rezensionen zu bestimmten Zeilen oder zum gesamten Patch hinzuzufügen. Rezensenten können die Änderungen mit einer von unten bewerten: +2 – Sieht gut aus, genehmigt. +1 – Sieht für mich gut aus, aber jemand anderes muss zustimmen. 0 – Keine Punktzahl. -1 – Ich würde es vorziehen, wenn Sie dies nicht einreichen. -2 – Senden blockieren. Eine Bewertung von +2 impliziert, dass der Code standardmäßig an den Master übermittelt werden kann. Dies kann nach Bedarf konfiguriert werden.

Was ist Jenkins und seine Verwendung?

Jenkins ist ein beliebter Build-Server, der für kontinuierliche Integration verwendet wird. Es ist webbasiert und ermöglicht die Automatisierung des Build-Prozesses, wenn Änderungen auftreten. Jenkins kann unabhängig arbeiten, auch ohne Git oder Gerrit. Es verfügt über Hooks, die Ereignisauslöser zulassen, sodass bei einer Änderung automatisch ein Build erstellt wird. Wenn Jenkins und Gerrit zusammen verwendet werden, haben die Builds eine Erfolgs-/Fehlermarkierung, um anzugeben, ob sie die Tests bestanden haben. Jenkins führt die Testregression nach dem Ausführen eines Builds aus. Sobald er fertig ist, veröffentlicht er die Testergebnisse genau wie einer der Gutachter. Falls der Build fehlschlägt, wird der Patch abgelehnt. Sie können je nach Qualität Ihres CI im Falle eines Testfehlers entweder -1 oder -2 festlegen. Außerdem können an dieser Stelle auch andere Code-Reviewer den Code überprüfen. Wenn alle Überprüfungen bestanden wurden, kann der Code in ein öffentliches Repository verschoben werden .

Arbeitsablauf für kontinuierliche Integration

  1. Der Entwickler checkt die Quelle von Git aus
  2. Der Entwickler nimmt die erforderlichen Änderungen vor
  3. Der Entwickler überträgt die Änderungen an Gerrit
  4. Gerrit sendet eine Änderungsmitteilung für den Integrationstest an Jenkins
  5. Jenkins zieht Änderungen direkt vom Gerrit-Git-Server und führt alle Testfälle gemäß unserer Projektkonfiguration aus
  6. Andere Entwickler überprüfen die Änderungen und genehmigen (+2)
  7. Gerrit führt die Änderungen mit dem Master-Projekt-Git-Repository zusammen, wenn Jenkins den Build bestanden hat und die Änderungen von anderen Entwicklern genehmigt wurden

Integrationssetup mit Gerrit und Jenkins Workflow 1. Installation von Gerrit

  • Voraussetzung: JRE, Mindestversion 1.8.
  • Link zum Herunterladen des tGerrit-Kriegspakets

Wenn Sie MySQL haben, können Sie es für die Gerrit-Datenbank verwenden. Erstellen Sie Benutzer und Datenbanken in MySQL für Gerrit.

mysql> CREATE USER 'gerrit2'@'localhost' IDENTIFIED BY 'secret';

mysql> DATENBANK ERSTELLEN reviewdb;

mysql> GRANT ALL ON reviewdb.* TO 'gerrit2'@'localhost';

mysql> FLUSH-RECHTE;

Führen Sie nun den folgenden Befehl aus, um die Site zu initialisieren.

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

Während dieser Initialisierung wird standardmäßig der Gerrit-Dienst gestartet. Wenn Sie Änderungen vornehmen möchten, z. B. MySQL-Datenbank, Anmeldeauthentifizierung, E-Mail-Server und httpd-URL senden, können Sie die Datei ~//etc/gerrit.config bearbeiten und die Details zum LDAP- und Datenbankkennwort in ~//etc/secure hinzufügen .config -Datei. Wenn Änderungen an den Einstellungen vorgenommen werden, muss der Gerrit-Dienst neu gestartet werden, damit sie wirksam werden.

 # ~//bin/gerrit.sh neu starten

Kopieren Sie das Skript ~//bin/gerrit.sh als gerrit in das init.d-Verzeichnis und fügen Sie es hinzu, um es während des Systemstarts zu starten.

2. Erstanmeldung

Laden Sie nun Ihre Gerrit-URL in den Browser. Sie können die Gerrit-Web-URL auch mit diesem Befehl finden.

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

Verwenden Sie jetzt die Anmeldeauthentifizierung mit der Methode, die Sie in der Gerrit-Konfigurationsdatei konfiguriert haben, um sich bei der Gerrit-Weboberfläche anzumelden. Standardmäßig ist es OpenID. LDAP ist eine der am häufigsten verwendeten Authentifizierungsmethoden.

Sobald Sie sich erfolgreich bei der Gerrit-Webseite angemeldet haben, müssen Sie sich bei Ihrem Client-Rechner anmelden, auf dem Sie die Entwicklung durchführen. Sie müssen RSA-Schlüssel für Ihre SSH-Sitzungen generieren. Sie können den Schritt der Schlüsselgenerierung überspringen, wenn Sie bereits über die Dateien verfügen.

# ls -l ~/.ssh

authorisierte_schlüssel config id_rsa id_rsa.pub bekannte_hosts

3. Generierung von SSH-Schlüsseln

# ssh-keygen -t rsa

Generieren eines öffentlichen/privaten RSA-Schlüsselpaars.

Geben Sie die Datei ein, in der der Schlüssel gespeichert werden soll (/home/user/.ssh/id_rsa):

Passphrase eingeben (leer für keine Passphrase):

Geben Sie dieselbe Passphrase erneut ein:

Ihre Identifikation wurde in /home/user/.ssh/id_rsa gespeichert.

Ihr öffentlicher Schlüssel wurde in /home/user/.ssh/id_rsa.pub gespeichert.

Der Schlüsselfingerabdruck ist:

SHA256:dMMVqsoLDf8T/d5Niob69oea3rkSLTBltiZ8s1lbdeA user@localhost

Das Randomart-Bild des Schlüssels ist:

+—[RSA 2048]—-+

| o… |

| .+o . o|

| ..+=. E..|

| .=o=.. . |

| . SB* o |

| = .. * o |

| . = . = . .|

| . Ö. +o++.+ |

| . o*=*Buh .|

+—-[SHA256]—–+

# Katze ~/.ssh/id_rsa.pub

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCwoWTT6S1pv2LP0l6r8305njSLtoupDCw8Df
GnaqW+ppfzNMtRJmAvCQpYuvE154EsGZC5csnRkUYAScOD3nri8NBsXMdD+m1mMyD
lA4ssMLhWHfstJGQ5aJ84NIR+zFK9o9QmDCVYU/
MYt2SZnmzi+Pdd4QbDWKisewmtun5rpy8vXWukKt9CHGTbv5lKyRVPF
LuQCynKbniZLV7aQD6gsVcZFG7Hj3ezBhDAZdBrCWLldy0S61DAmdH5C94xmlSuraq
HiX0pkLi4J67msvOUW6dBfeCP1VsMNz0j/
91LPlOMf5I2r1fRw1s/J1z/
UcsgBDyATwSKocNklkrd8+pp user@localhost

  • Kopieren Sie den obigen öffentlichen Schlüssel und gehen Sie zu Ihrer Gerrit-Web-URL
  • Überprüfen Sie den Benutzernamen in der rechten Ecke der Webseite und klicken Sie auf Ihren Benutzer, um den Einstellungslink zu finden
  • Auf der linken Seite finden Sie die „SSH Public Keys“, klicken Sie darauf
  • Klicken Sie nun auf die Schaltfläche „Schlüssel hinzufügen“, fügen Sie Ihren öffentlichen SSH-Schlüssel ein und fügen Sie ihn hinzu

Integrations-Setup mit Gerrit und Jenkins SSH Key Generator Der erste Benutzer, der sich anmeldet und ein Konto registriert, wird automatisch zu den voll privilegierten Administratoren hinzugefügt. Jetzt haben Sie die Berechtigung, Projekte zu erstellen. Klicken Sie auf die Registerkarte „Projekte“ und dann auf „Neue Projekte erstellen“. Geben Sie nun den Projektnamen ein, um zu beginnen. CI-Setup Los geht's, klonen Sie das Projekt in Ihrem System und fügen Sie Ihre Entwicklungscodes hinzu. # ssh [email protected] -p 29418

**** Willkommen bei Gerrit Code Review **** Hallo Selvam, Sie haben sich erfolgreich über SSH verbunden. Leider sind interaktive Shells deaktiviert. Verwenden Sie zum Klonen eines gehosteten Git-Repositorys: git clone ssh://[email protected]:29418/REPOSITORY_NAME.git Verbindung zu 192.168.56.137 geschlossen.

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

4. Installation von Jenkins

Sie können Jenkins mit dem Paket apt-get oder deb installieren.

  • sudo apt-get update
  • sudo apt-get install jenkins

Die Jenkins-Konfiguration befindet sich in /etc/default/jenkins, wo Sie den Java-Speicherort und JAVA_ARGS ändern können. Standardmäßig läuft Jenkins auf 8080. Wenn Sie Gerrit und Jenkins auf demselben Computer ausführen, ist der Standardport 8080 bereits von Gerrit belegt. Hier müssen Sie den Jenkins-Port ändern. Um ihn zu ändern, bearbeiten Sie den HTTP_PORT-Wert so, dass er auf einem anderen Port ausgeführt wird.

5. Starten Sie den Jenkins-Prozess

# /etc/init.d/jenkins start Gehen Sie zu Ihrem Browser und laden Sie die Jenkins-Seite mit Ihrem Jenkins-Hostnamen und der Portnummer.

 https://:/

Wenn Sie Jenkins 2.* installiert haben, fragt die Jenkins-Webseite nach dem anfänglichen AdminPassword. Das Passwort finden Sie in der Datei /var/log/jenkins/jenkins.log. Das Protokoll sieht wie folgt aus:

Die Ersteinrichtung von Jenkins ist erforderlich. Ein Admin-Benutzer wurde erstellt und ein Passwort generiert. Bitte verwenden Sie das folgende Passwort, um mit der Installation fortzufahren: f16b093akcnml397jcdoa239d6bafb9 Dieses kann auch gefunden werden unter: /var/lib/jenkins/secrets/initialAdminPassword
  • Gehen Sie nun zu Jenkins -> Manage Jenkins -> Plugin Manager, um das Git- und Gerrit-Plugin in Jenkins zu installieren
  • Klicken Sie auf die Registerkarte „Verfügbar“, suchen Sie nach „ Git-Plugin “ und klicken Sie auf „Installieren ohne Neustart“. Suchen Sie erneut nach „ Gerrit Trigger“ und klicken Sie auf „Installieren ohne Neustart“. Überprüfen Sie abschließend, ob es in der installierten Liste enthalten ist.

Integrationssetup mit Gerrit und Jenkins Plugin Der Jenkins-Prozess wird vom Jenkins-Benutzer ausgeführt. Daher müssen wir den Zugriff für den Jenkins-Benutzer in Gerrit aktivieren.

  • Erstellen Sie mit Ihrer Authentifizierungsmethode den Jenkins-Benutzer in Gerrit
  • Erstellen Sie nun wie zuvor ssh-keygen für den jenkins-Benutzer. Erstellen Sie diesmal jedoch den Schlüssel mit leerer Passphrase und kopieren Sie den öffentlichen Schlüssel für den Jenkins-Benutzer in das Gerrit
  • Klicken Sie nun auf „Neues Element“, um einen neuen Job zu erstellen, und fügen Sie Ihre Git-URL im Abschnitt „Quellcodeverwaltung/Git“ hinzu. Wählen Sie außerdem das „Gerrit-Ereignis“ in den Build-Triggern und geben Sie das Gerrit-Projektmuster ein.

Integrationssetup mit Gerrit und Jenkins EventCI-Integrationsereignis Speichern Sie abschließend die Konfiguration. Perfekt, Ihr Gerrit- und Jenkins-Setup ist jetzt abgeschlossen.