Jenkins Git Integration - Nützlich für jeden DevOps Professional



Dieser Blog diskutiert die Integration von Git in Jenkins. Außerdem werden die Vorteile der Integration von Git in Jenkins zusammen mit der Demo erläutert.

ist ohne Jenkins sicherlich unvollständig. Jenkins zusammen mit Git ist eine wunderbare Kombination. In diesem Artikel werde ich über Jenkins Git Integration und seine Vorteile sprechen. Die Hinweise, die wir behandeln werden, sind wie folgt:

Beginnen wir also mit unserem ersten Thema.





Was ist Git - Warum Git Entstanden?

Wir alle wissen, dass „die Notwendigkeit die Mutter aller Erfindungen ist“. In ähnlicher Weise entstand Git, um bestimmte Notwendigkeiten zu erfüllen, mit denen die Entwickler vor Git konfrontiert waren. Machen wir also einen Schritt zurück, um alles über Versionskontrollsysteme (VCS) und die Entstehung von Git zu erfahren.

Versionskontrolle ist die Verwaltung von Änderungen an Dokumenten, Computerprogrammen, großen Websites und anderen Informationssammlungen.



Es gibt zwei Arten von VCS:

  • Zentrales Versionskontrollsystem (CVCS)

  • Verteiltes Versionskontrollsystem (DVCS)



Zentralisiertes VCS

Ein zentrales Versionskontrollsystem (CVCS) verwendet einen zentralen Server zum Speichern aller Dateien und ermöglicht die Zusammenarbeit im Team. Es funktioniert in einem einzelnen Repository, auf das Benutzer direkt auf einen zentralen Server zugreifen können.

In der folgenden Abbildung finden Sie eine bessere Vorstellung von CVCS:

Das Repository im obigen Diagramm gibt einen zentralen Server an, der lokal oder remote sein kann und direkt mit jeder Arbeitsstation des Programmierers verbunden ist.

Jeder Programmierer kann oder extrahieren aktualisieren ihre Workstations mit den im Repository vorhandenen Daten. Sie können auch Änderungen an den Daten vornehmen oder verpflichten zum Repository. Jede Operation wird direkt im Repository ausgeführt.

Obwohl es ziemlich praktisch erscheint, ein einzelnes Repository zu verwalten, weist es einige große Nachteile auf. Einige von ihnen sind:

  • Es ist nicht lokal verfügbar, dh Sie müssen immer mit einem Netzwerk verbunden sein, um eine Aktion ausführen zu können.

  • Da alles zentralisiert ist, führt in jedem Fall ein Absturz oder eine Beschädigung des zentralen Servers zum Verlust der gesamten Daten des Projekts.

Hier löst Distributed VCS das Problem.

Verteiltes VCS

Diese Systeme sind nicht unbedingt auf einen zentralen Server angewiesen, um alle Versionen einer Projektdatei zu speichern.In Distributed VCS verfügt jeder Mitwirkende über eine lokale Kopie oder einen „Klon“ des Hauptrepositorys. Hier unterhält jeder ein eigenes lokales Repository, das alle im Hauptrepository vorhandenen Dateien und Metadaten enthält.

Sie werden es besser verstehen, wenn Sie sich auf das folgende Diagramm beziehen:

Wie Sie im obigen Diagramm sehen können, verwaltet jeder Programmierer ein eigenes lokales Repository, bei dem es sich tatsächlich um die Kopie oder den Klon des zentralen Repositorys auf seiner Festplatte handelt. Sie können ihr lokales Repository ohne Störung festschreiben und aktualisieren.

Was bedeutet __init__ in Python?

Sie können ihre lokalen Repositorys mit neuen Daten vom zentralen Server durch einen Vorgang namens „ ziehen 'Und Auswirkungen auf Änderungen am Haupt-Repository durch eine Operation namens' drücken ”Aus ihrem lokalen Repository.

Lassen Sie uns nun versuchen, die Definition von Git kennenzulernen.

  • Git ist ein verteiltes Tool zur Versionskontrolle, das verteilte nichtlineare Workflows unterstützt, indem es Datensicherheit für die Entwicklung hochwertiger Software bietet. Tools wie Git ermöglichen die Kommunikation zwischen der Entwicklung und dem Betriebsteam.

  • Normalerweise haben Sie bei der Entwicklung eines großen Projekts eine große Anzahl von Mitarbeitern. Daher ist es sehr wichtig, dass die Mitarbeiter miteinander kommunizieren, während Änderungen am Projekt vorgenommen werden.

  • Commit-Nachrichten in Git spielen eine sehr wichtige Rolle bei der Kommunikation zwischen den Teams. Neben der Kommunikation ist der wichtigste Grund für die Verwendung von Git, dass Sie immer eine stabile Version des Codes bei sich haben.

  • Daher spielt Git eine wichtige Rolle für den Erfolg bei DevOps.

Was ist Jenkins?

Jenkins ist ein in Java geschriebenes Open-Source-Automatisierungstool mit Plugins für die kontinuierliche Integration. Jenkins wird zum kontinuierlichen Erstellen und Testen Ihrer Softwareprojekte verwendet, um Entwicklern die Integration von Änderungen in das Projekt zu erleichtern und Benutzern das Erhalten eines neuen Builds zu erleichtern. Darüber hinaus können Sie Ihre Software kontinuierlich bereitstellen, indem Sie eine Vielzahl von Test- und Bereitstellungstechnologien integrieren.

Mit Jenkins können Unternehmen den Softwareentwicklungsprozess durch Automatisierung beschleunigen. Jenkins integriert Entwicklungslebenszyklusprozesse aller Art, einschließlich Erstellen, Dokumentieren, Testen, Paketieren, Bereitstellen, statische Analyse und vieles mehr.

Jenkins erreicht eine kontinuierliche Integration mit Hilfe von Plugins. Plugins ermöglichen die Integration verschiedener DevOps-Stufen. Wenn Sie ein bestimmtes Tool integrieren möchten, müssen Sie die Plugins für dieses Tool installieren. Zum Beispiel Git, Maven 2-Projekt, Amazon EC2, HTML-Publisher usw.

Zu den Vorteilen von Jenkins gehören:

  • Es ist ein Open-Source-Tool mit großartiger Community-Unterstützung.

  • Zu einfach zu installieren.

  • Es verfügt über mehr als 1000 Plugins, um Ihre Arbeit zu erleichtern. Wenn ein Plugin nicht vorhanden ist, können Sie es codieren und für die Community freigeben.

  • Es ist kostenlos.

  • Es wurde mit Java erstellt und ist daher auf alle wichtigen Plattformen portierbar.

Sie wissen jetzt, wie Jenkins die traditionellen SDLC-Mängel überwindet. Die folgende Tabelle zeigt den Vergleich zwischen „Vorher und Nachher Jenkins“.

Vor JenkinsNach Jenkins
Der gesamte Quellcode wurde erstellt und anschließend getestet. Das Auffinden und Beheben von Fehlern bei Build- und Testfehlern war schwierig und zeitaufwändig, was wiederum den Softwarebereitstellungsprozess verlangsamt.Jedes im Quellcode vorgenommene Commit wird erstellt und getestet. Anstatt den gesamten Quellcode zu überprüfen, müssen sich Entwickler nur auf ein bestimmtes Commit konzentrieren. Dies führt zu häufigen neuen Softwareversionen.
Entwickler müssen auf Testergebnisse wartenEntwickler kennen das Testergebnis jedes Commits, das während des Laufs im Quellcode ausgeführt wird.
Der gesamte Vorgang erfolgt manuellSie müssen nurÜbernehmen Sie Änderungen am Quellcode und Jenkins automatisiert den Rest des Prozesses für Sie.

Warum werden Jenkins und Git zusammen verwendet?

Wie vorhin besprochen, Gehen ist ein Versionsverwaltungsmanager. Hier bewahren Sie Ihren Quellcode auf, um alle im Laufe der Zeit auftretenden Codeänderungen zu verfolgen und die Versionen zu veröffentlichen, wenn sie zur Veröffentlichung bereit sind.

Jenkins Auf der anderen Seite handelt es sich um eine kontinuierliche Integrationslösung. Es wurde entwickelt, um die meisten Aufgaben zu automatisieren, die ein Entwickler bei der Entwicklung einer neuen Anwendung ausführen muss (Codequalitätsprüfungen, Erstellung, Archivierung von Build-Artefakten, Integrationstests, Bereitstellung in verschiedenen Umgebungen usw.). Ohne eine CI-Lösung kann ein Entwickler muss viel Zeit damit verbringen, diese sich wiederholenden unproduktiven Aufgaben zu erledigen.

Vorteile:

  • Git und Jenkins sind beide sehr mächtig, aber mit großer Kraft geht große Verantwortung einher. Es ist ziemlich üblich, eine unnötige Menge von zu rechtfertigen Komplikation in einer Build-Pipeline einfach weil du kannst.
  • Während Jenkins viele nette Tricks im Ärmel hat, ist es einfach, die Funktionen von Git zu nutzen, da es das Release-Management und Bug Tracking deutlich einfacher im Laufe der Zeit.
  • Wir können dies tun, indem wir vorsichtig mit den von uns erstellten Codeversionen umgehen und sie entsprechend kennzeichnen. Das hält Release-bezogene Informationen in der Nähe des Codes , im Gegensatz zu Jenkins Build-Nummern oder anderen Monikern.
  • Git-Zweige schützen reduziert das Risiko menschlicher Fehler Durch die Automatisierung so vieler Aufgaben wie möglich wird reduziert, wie oft wir diese Menschen belästigen (oder darauf warten) müssen.

Beispiel:

Nehmen wir das Beispiel einer neuen Funktion in einer Webanwendung. Ein Entwickler wird identifiziert und der Aufgabe zugewiesen. Er übernimmt die vorhandene Codebasis aus der Quellcodeverwaltung - beispielsweise Git, nimmt seine Änderungen vor, führt Unit-Tests durch, stellt die Codequalität manuell sicher und überprüft den neuen Code wieder in Git.

Anschließend muss er den Code erstellen, in einer Integrationsinstanz bereitstellen, Integrationstests ausführen und, sobald die Änderung zufriedenstellend erscheint, eine Anforderung für die Produktionsbereitstellung stellen. Wenn wir nur einen Diener hätten, der sich um diese Abschnitte zum Testen, Erstellen, Qualitätsprüfen und Bereitstellen kümmert, hätte sich der arme Entwickler besser auf das konzentrieren können, was er wirklich gut kann - die Implementierung und Verbesserung der Logik des Features.

Dieser Diener ist Jenkins. Es fungiert als Orchestrator, um alle diese Aktivitäten auszuführen, sobald die Änderung in der Quellcodeverwaltung (Git) eingecheckt ist, und gibt dem Entwickler somit eine schnelle Rückmeldung, ob die von ihm vorgenommenen Änderungen für die Produktionsbereitstellung gut genug sind oder nicht.Es ist extrem flexibel, Open Source und verfügt über eine Vielzahl von Plugins, die fast alles können, was Sie möchten.

Demo

Hier sehen wir, wie Git in Jenkins integriert wird. Es gibt 5 Schritte, die Sie befolgen müssen:

1. Erstellen Sie ein Beispielprogramm:

Sie können jedes gewünschte Beispielprogramm wie Java oder Python oder ein anderes Programm erstellen. Hier werden wir eine einfache schreiben Python-Programm das druckt Hallo, Welt!

2. Erstellen Sie einen Jenkins-Job:

  • Hier müssen Sie zuerst starte Jenkins Verwenden der Eingabeaufforderung.

  • Dazu müssen Sie zuerst zum Jenkins-Speicherort auf Ihrem System navigieren und den Befehl verwenden java -jar jenkins.war

  • Öffnen Sie nach dem Ausführen dieses Befehls den Webbrowser und rufen Sie über den Link die Startseite von Jenkins auf localhost: 8080 . Dies ist die Standardportnummer.

  • Öffnen Sie die Jenkins-Homepage von Eingabe des Benutzernamens und des Passworts.

  • Um ein Projekt zu erstellen, klicken Sie auf Neuer Gegenstand und geben Sie die Projektname und auswählen Freestyle-Projekt . Klicken Sie auf OK.

3. Fügen Sie dieses Programm zu Github hinzu:

  • Öffnen Sie Git Bash auf Ihrem System. Navigieren an den Ort Ihres Programms. Initialisieren Sie ein leeres Repository mit dem Befehl git init .

  • Verwenden Sie den Befehl git hinzufügen. um die Datei aus dem Arbeitsverzeichnis zum Staging-Bereich hinzuzufügen.

  • Fügen Sie nun die Datei mit dem Befehl zum lokalen Repository hinzu git commit -m 'demo.py Datei hinzugefügt' .

  • Jetzt musst du drücken diese Datei in das Remote-Repository. Gehen Sie dazu zu Ihrem GitHub-Konto und erstellen Sie ein neues öffentliches Repository. Kopieren Sie nun den Speicherort dieses Repositorys und gehen Sie zum Git Bash Terminal. Geben Sie hier den Befehl ein Git Remote Add Origin . Da Sie jetzt eine Verbindung zum Remote-Repository hergestellt haben, können Sie Ihren Code jetzt mit dem Befehl dorthin übertragen Git Push -u Origin Master. Um dies zu überprüfen, gehen Sie zum GitHub-Konto und aktualisieren Sie die Seite. Sie sehen die dort hinzugefügte Datei.

4. Git Plugin in Jenkins hinzufügen:

  • Auf Jenkins Homepage gehen Sie zu Jenkins verwalten .

    ist ein Master-Abschluss ein Postgraduierten-Abschluss
  • Weiter klicken auf Plugins verwalten . Hier überprüfen Sie das Git-Plugin im installierten Bereich. Wenn es hier nicht verfügbar ist, suchen Sie es im verfügbaren Bereich und laden Sie es herunter.

5. Konfigurieren Sie den Jenkins-Job so, dass der Build ausgelöst wird:

  • Gehen Sie zu dem Projekt in Jenkins, das wir in Schritt 2 erstellt haben. Hier im Abschnitt Quellcodeverwaltung: git auswählen und geben Sie den Link des öffentlichen Repositorys ein, das Sie in Schritt 3 erstellt haben Abschnitt 'Trigger erstellen' , klicke auf SCM-Option abfragen . Hier im Zeitplan-Teil müssen Sie fünf durch Leerzeichen getrennte Sternchen eingeben. Dies ist nichts anderes als eine Cron-Syntax für Ihren Job. Dies bedeutet, dass Jenkins jede Minute nach Änderungen im Quellcode sucht und bei Änderungen den Jenkins-Build auslöst.

  • Klicke auf Anwenden und dann weiter sparen . Klicken Sie anschließend auf Ihrer Projekthomepage auf Jetzt bauen . Dadurch wird das Projekt ausgeführt und in der Konsolenausgabe können Sie sehen, wie Ihr Programm den Status Ihres Jenkins-Jobs ausgibt. Wenn alles in Ordnung ist, wird es als angezeigt Erfolg .

So wird die Jenkins Git-Integration durchgeführt. Damit sind wir am Ende dieses Artikels über Jenkins Git Integration angelangt. Ich hoffe, Ihnen hat dieser Artikel gefallen.

Jetzt, wo du was verstanden hast Jenkins Git Integration ist, überprüfen Sie dies von Edureka, einem vertrauenswürdigen Online-Lernunternehmen mit einem Netzwerk von mehr als 250.000 zufriedenen Lernenden auf der ganzen Welt. Der Edureka DevOps-Zertifizierungskurs hilft den Lernenden, DevOps zu verstehen und Kenntnisse in verschiedenen DevOps-Prozessen und -Tools wie Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack und GIT zu erwerben, um mehrere Schritte in SDLC zu automatisieren.

Hast du eine Frage an uns? Bitte erwähnen Sie es in den Kommentaren und wir werden uns bei Ihnen melden