Jenkins Shared Library: Ein genauerer Blick [2022]

Veröffentlicht: 2021-01-02

Wir leben im Zeitalter von Microservices, in dem moderne Anwendungen in einzeln einsetzbare Komponenten zerlegt werden . Wir können argumentieren, dass Jenkins seinen Platz unter den führenden ursprünglichen CI / CD-Tools für die Bereitstellung von Microservices gefunden hat. Im Vergleich zu monolithischen Anwendungen gibt es viele Pipelines für die Bereitstellung einzelner Microservices.

Sie können den Schlauch als Code verwenden, um den gesamten Prozess von CI / CD zu codieren. Behandeln Sie es wie in der App-Entwicklung. Sie können Ihren Pipeline-Code veröffentlichen und alle Testebenen ausführen, bevor Sie ihn zum Bereitstellen Ihrer App verwenden.

Inhaltsverzeichnis

Was ist die gemeinsam genutzte Jenkins-Bibliothek?

Wenn wir CI / CD als Symbol sagen, brauchen wir Modularität und Wiederverwendung. Sie müssen das DRY-Prinzip befolgen. Hier erweist sich die gemeinsam genutzte Bibliothek von Jenkins als nützlich.

Die Jenkins Shared Library ist die Idee, einen Standard-Pipe-Code für Versionskontrollsysteme einzubinden und kann auf beliebig vielen Pipes verwendet werden, indem nur darauf verwiesen wird. Mehrere Teams können dasselbe Verzeichnis für ihre Pipeline verwenden.

Sie können es mit gängigen Programmierverzeichnissen vergleichen. Beim Programmieren wird ein separater Leitfaden erstellt, den jeder beim Importieren von Code verwenden kann.

Wenn Sie beispielsweise zehn Pipes für Microservices aus Java haben, wird die alte Erstellungsprozedur für alle zehn Pipes wiederholt. Außerdem wird der Pipe-Code kopiert und beim Hinzufügen neuer Dienste eingefügt. Wenn Sie einige Parameter in einem alten Bauabschnitt ändern möchten, müssen Sie diese in allen Rohren manuell anpassen.

Im selben Szenario erstellen Sie eine gemeinsam genutzte Bibliothek für ältere Gebäude. Für alle Rohre müssen Sie nur auf die alte Bauordnungsbibliothek zurückgreifen. Wenn es in Zukunft alte Änderungen gibt, müssen Sie nur das Symbol für die gemeinsam genutzte Bibliothek aktualisieren.

Lesen Sie: Interessante Ideen und Themen für Jenkins-Projekte

Beginnen Sie mit der Verwendung gemeinsam genutzter Bibliotheken

Ein freigegebenes Verzeichnis ist eine Sammlung cooler Dateien (DSL + Groovy). Alle coolen Dateien müssen sich im Git-Repository befinden. Dieses Beispiel verwendet Github als Git-Repository. https://github.com/devopscube/jenkins-shared-library. Sie können dieses Repository duplizieren, um die gemeinsam genutzte Bibliotheksinfrastruktur zu erhalten.

Die gemeinsam genutzte Bibliotheksdatenbank enthält die folgenden Datenträgerstrukturen:

Die gemeinsame Bibliothek von Jenkins

| ____ Var

| ____ Quelle

| ____ Ressourcen

Vars

Sie enthält den gesamten WCL-Code, den Sie von der Pipeline aufrufen können. Es enthält alle Verzeichnisdateien mit der Erweiterung .groovy. .txt-Dateien werden ebenfalls unterstützt, um den gemeinsam genutzten Bibliothekscode zu dokumentieren. Wenn Sie beispielsweise eine Datei mit dem Namen maven-build haben. Groovy, dann erhalten Sie eine Hilfedatei mit dem Namen maven-groovy.txt. Sie können eine Hilfedokumentation schreiben, um die Eigenschaften eines freigegebenen Verzeichnisses in dieser Datei zu markieren. Hilfedateien können auf der Seite <your-jenkins-url> / Pipeline Syntax / Global angezeigt werden.

Quelle

Es ist ein Standard-Java-Quellverzeichnis. Sobald der gesamte Text kompiliert wurde, wird er dem Klassenpfad hinzugefügt. Hier können Sie einen unglaublich coolen Code hinzufügen, um den Code der gemeinsam genutzten Bibliothek zu erweitern. Sie können das Importmanifest auch verwenden, um vorhandene Jenkins-Kategorien und -Erweiterungen zu importieren.

Es gibt Szenarien, in denen coole DSL-Hardware nicht flexibel genug ist, um bestimmte Funktionen auszuführen. In diesem Fall können Sie benutzerdefinierte Groove-Funktionen in src schreiben und sie im gemeinsam genutzten Bibliothekscode lesen.

Ressourcen

In diesem Ordner können Sie alle unnötigen Dateien verwalten, die für den Schlauch benötigt werden. Beispielsweise benötigen Sie möglicherweise eine allgemeine JSON-Vorlage zum Ausführen von API-Aufrufen während der Konstruktion. Sie können diese JSON-Vorlage in einem Ressourcenordner speichern und über die LibraryResource-Funktion in einer gemeinsam genutzten Bibliothek aufrufen.

Muss gelesen werden: Jenkins-Gehalt in Indien

Gemeinsame globale Bibliothek

Abhängig von Ihrem Anwendungsfall gibt es mehrere Orte, an denen Sie ein gemeinsames Verzeichnis einrichten können. Jenkins Management » Systemkonfiguration » Globale Pipe-Bibliothek. Sie können beliebig viele Verzeichnisse konfigurieren.

Diese Bibliotheken sind universell verfügbar, sodass jede Pipeline in Ihrem System die in diesen Bibliotheken implementierten Funktionen nutzen kann.

Diese Bibliotheken gelten als „zuverlässig“. Sie können jede Methode in Java, Groovy, der internen Jenkins-API, der Jenkins-Erweiterung oder einem Drittanbieterverzeichnis ausführen. Es ermöglicht Ihnen, Bibliotheken genau zu identifizieren, die unsichere APIs in High-Level-Umschläge falten, die von jeder Pipeline sicher verwendet werden können.

Bitte beachten Sie, dass jeder, der die Provision an diese SCM-Datenbank zahlen kann, uneingeschränkten Zugriff auf Jenkins hat. Sie benötigen die Berechtigung Total / RunScripts, um diese Verzeichnisse zu erstellen (diese Berechtigung wird normalerweise Jenkins-Administratoren erteilt).

Melden Sie sich für Software Engineering-Kurse an den besten Universitäten der Welt an. Verdienen Sie Executive PG-Programme, Advanced Certificate-Programme oder Master-Programme, um Ihre Karriere zu beschleunigen.

Gemeinsam genutzte Bibliothek auf Ordnerebene

Alle erstellten Ordner können mit freigegebenen Verzeichnissen verknüpft werden. Mit diesem Mechanismus können Sie einen bestimmten Verzeichnisbereich für alle Pipes innerhalb eines Volumes oder Unterordners festlegen.

Ordnerbasierte Verzeichnisse gelten nicht als „vertrauenswürdig“. Es funktioniert im Groove-Sandkasten, genau wie eine normale Pfeife.

Automatische gemeinsam genutzte Bibliothek

Andere Plugins können eine Möglichkeit hinzufügen, die Bibliothek unterwegs zu identifizieren. Beispielsweise ist „GitHub Organization Folder“ ein Quell-Plug-in, das in der GitHub Branch Source bereitgestellt wird. Es stellt eine Komponente bereit, die es Skripten ermöglicht, nicht vertrauenswürdige Bibliotheken wie github.com/orgname/reponame ohne jegliche hinzugefügte Konfiguration zu verwenden. In diesem Fall wird das angegebene GitHub-Repository mit anonymen Einstellungen aus dem Hauptzweig geladen.

Um nach Änderungen in der Bibliothek zu suchen

Wenn Sie einen Fehler in einem Build mit einem nicht vertrauenswürdigen Verzeichnis bemerken, klicken Sie auf den Wiedergabelink und bearbeiten Sie eine oder mehrere Quelldateien, um zu sehen, ob die resultierende Version wie erwartet funktioniert. Wenn Sie mit den Ergebnissen zufrieden sind, klicken Sie auf der Seite Release-Status auf den Diff-Link und wenden Sie den Unterschied auf Ihre Bibliothek und Ihren Commit-Pool an.

(Auch wenn die angeforderte Version der Bibliothek eine Verzweigung und keine statische Version wie das Lesezeichen ist, verwendet die reaktivierte Version dieselbe Version wie die Originalversion. Sie können die Bibliotheksressourcen nicht zurückziehen.)

Derzeit bietet es Ihnen nicht die vertrauenswürdigen Bibliotheken Replay. Das Ändern von Ressourcendateien während der Wiedergabe wird derzeit nicht unterstützt.

Lesen Sie auch: Fragen und Antworten zu Jenkins-Interviews

Fazit

Hier sind einige der wichtigsten Dinge, an die Sie sich erinnern sollten:

  • Sie müssen Groovy zum Schreiben von Schritten oder benutzerdefinierten Funktionen verwenden.
  • Es besteht die Notwendigkeit, Pipelineschritte zu schreiben, die Sie von Pipelines aufrufen können.
  • Sie müssen eine Datei im Verzeichnis vars des Repositorys erstellen, die den Namen Ihres benutzerdefinierten Schritts enthält.
  • Die def-Aufrufmethode sollte durch die Parameter Ihres Schritts implementiert werden.
  • Wenn es notwendig ist, gemeinsamen Groovy-Code zu schreiben, können Sie ihn in src hinzufügen.
  • Sie können auch eine gemeinsam genutzte Bibliothek in Jenkins integrieren, indem Sie einen Bildschirm zum Konfigurieren des Systems verwenden.

Wenn Sie mehr über Full-Stack-Entwicklung erfahren möchten, schauen Sie sich das Executive PG-Programm in Full-Stack-Softwareentwicklung von upGrad & IIIT-B an, das für Berufstätige konzipiert ist und mehr als 500 Stunden strenge Schulungen, mehr als 9 Projekte und Aufgaben bietet , IIIT-B-Alumni-Status, praktische praktische Abschlussprojekte und Arbeitsunterstützung bei Top-Unternehmen.

Softwareentwicklungskurs | Meistern Sie Java, C, Python und mehr

Bewerben Sie sich jetzt für den Master in Software Engineering