Jenkins Pipeline ist eine Suite von Jenkin-Funktionen. Es ist eine von mehreren Möglichkeiten, einige Jenkins-Schritte oder eine Kombination von Jobs mithilfe von Code zu definieren und den Prozess der Softwarebereitstellung zu automatisieren.
Wenn Sie Jenkins noch nicht eingerichtet haben, finden Sie Anweisungen in unserem Jenkins-Installationshandbuch. Die Pipeline verwendet eine Domain Specific Language (DSL) mit zwei verschiedenen Syntaxen:
- Deklarative Pipeline
- Geskriptete Pipeline
In diesem Tutorial konfigurieren wir die deklarative Pipeline mit Sonar- und GitLab-Integration.
Konfigurieren der Jenkins-Pipeline mit SonarQube- und GitLab-Integration
1. Voraussetzungen
Pipeline-Plugin installieren
Wenn Sie die Option gewählt hätten Vorgeschlagene Plugins installieren Wenn Sie Jenkins konfiguriert haben, sollten alle benötigten Plugins automatisch installiert sein. Wenn nicht, keine Sorge, Sie können die Plugins jetzt installieren.
Starten Sie Jenkins und gehen Sie zu Jenkins verwalten -> Plugins verwalten -> Verfügbar
Wenn Sie das Pipeline-Plugin nicht im Verfügbar Abschnitt, überprüfen Sie die Eingerichtet Tab.
Sonar-Scanner installieren
Melden Sie sich zuerst beim Jenkins-Server an. Hier werde ich den Sonar-Scanner in den Ordner „/opt“ herunterladen.
cd /opt
Herunterladen mit wget.
wget https://binaries.Sonarquelle.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.2.0.1873-linux.Postleitzahl
wenn wget Befehl nicht verfügbar ist, können Sie ihn mit den folgenden Befehlen installieren:
Für Ubuntu/Debian:
apt-get install wget -y
Für Centos / Redhat:
yum installiere wget -y
Zurück zu Sonar, es ist Zeit, die heruntergeladene Sonar-Datei zu entpacken.
Sonar-Scanner-cli-4 entpacken.2.0.1873-linux.Postleitzahl
Installieren Sie unzip, wenn der Befehl keinen Fehler gefunden hat.
Für Ubuntu/Debian:
apt-get install unzip -y
für Centos / Redhat:
yum install entpacken -y
Sonarpaket umbenennen.
mv Sonar-Scanner-4.2.0.1873-Linux Sonar-Scanner
Gehen Sie zum Sonarverzeichnis.
CD Sonar-Scanner
Holen Sie sich den Weg.
pwd
Sonar-Scanner-Pfad kopieren:
/opt/sonar-scanner
Sonar-Plugin installieren
Von Jenkins Kopf zu Jenkins verwalten -> Plugins verwalten -> Verfügbar
Suchen nach Sonar und wählen Sie SonarQube-Scanner und klicke Ohne Neustart installieren.
Dann sollte Jenkins das entsprechende Plugin installieren.
Wählen Starten Sie Jenkins neu, wenn die Installation abgeschlossen ist. Jenkins sollte neu starten.
Sonar-Plugins konfigurieren
Gehe zu Jenkins verwalten -> Globale Toolkonfiguration.
Finden SonarQube-Scanner und klicke auf SonarQube-Scanner hinzufügen.
Auswahl aufheben automatisch installieren.
Geben Sie einen beliebigen Namen ein und fügen Sie den kopierten Sonar-Scanner-Pfad ein in SONAR_RUNNER_HOME.
Dann Konfigurationen speichern.
Konfigurieren der Sonarqube-Servereinstellungen
Holen Sie sich das SonarQube-Token vom SonarQube-Server.
Melden Sie sich beim SonarQube-Server an. Folgen Sie unserer SonarQube Server-Installationsanleitung, um Sonarqube Server zu installieren.
Gehe zu Administration -> Sicherheit -> Benutzer.
Klicke auf Token.
Geben Sie einen beliebigen Namen ein und klicken Sie auf Token generieren.
Generiertes Token kopieren.
Gehen Sie nun zum Jenkins-Server.
Klicken Anmeldeinformationen -> System -> Globale Anmeldeinformationen -> Anmeldeinformationen hinzufügen.
Wählen Sie Geheimtext. Fügen Sie das kopierte SonarQube-Token in Secret ein und geben Sie der ID und der Beschreibung einen beliebigen Namen.
Hinzufügen des SonarQube-Servers zu Jenkins
Gehe zu Jenkins verwalten -> System konfigurieren.
Finden SonarQube-Server und klicke auf SonarQube hinzufügen.
Wählen Beim Einfügen des SonarQube-Servers aktivieren, Geben Sie einen beliebigen Namen ein und fügen Sie die SonarQube-Server-URL hinzu.
Wählen Authentifizierungstoken aus dem Dropdown-Menü. Das Token, das wir zuvor hinzugefügt haben, sollte hier aufgelistet werden.
Hinzufügen der Sonar-Projekt.Eigenschaften Datei in das Repository-Root
Hier ist unsere Datei:
# Erforderliches Metadaten-Sonar.projectKey=fosslinux-nodejs Sonar.projectName=fosslinux-nodejs # Durch Kommas getrennte Pfade zu Verzeichnissen mit Quellen (erforderlich) Sonar.Quellen=./ # Sprachsonar.language=js Sonar.profile=node # Kodierung von Quelldateien Sonar.sourceEncoding=UTF-8
Klicken Sie abschließend auf speichern.
GitLab-Server mit Jenkins integrieren
Folgen Sie unserer Gitlab-Anleitung zum Installieren und Konfigurieren von GitLab.
Gehe zu Anmeldeinformationen -> System -> Globale Anmeldeinformationen -> Anmeldeinformationen hinzufügen.
Wählen Sie a Benutzername mit Passwort. Fügen Sie GitLab-Anmeldedaten hinzu und klicken Sie auf OK.
Melden Sie sich beim Jenkins-Server an und installieren Sie git.
Für Ubuntu/Debian:
apt-get install git -y
Für CentOS/Redhat:
yum installiere git -y
Hier werden wir mit der NodeJS-App arbeiten, also installieren Sie sie zuerst.
NodeJS-Plugin installieren
Gehe zu Jenkins verwalten -> Plugin-Manager -> verfügbar.
Suche nach NodeJS.
Dann wähle das Plugin aus und ohne Neustart installieren.
Klicke auf Starten Sie Jenkins neu, wenn die Installation abgeschlossen ist und keine Jobs ausgeführt werden, und Jenkins sollte automatisch neu starten.
NodeJS-Plugin konfigurieren
Klicke auf Jenkins verwalten > Globale Toolkonfiguration -> NodeJS
Gib einen beliebigen Namen. Hier haben wir ausgewählt automatisch installieren und NodeJS 10.
Speichern Sie die Konfigurationen.
Erstellen einer deklarativen Pipeline
Gehen Sie zum Jenkins-Dashboard, klicken Sie auf Neu Artikel. Geben Sie dann einen Artikelnamen ein und wählen Sie das Projekt 'Pipeline' aus. Klicken OK.
Wählen Pipeline Skript
Hier ist das einfache Pipeline-Skript für git clone, die SonarQube-Qualitätsprüfung und NodeJS.
Pipeline Agent alle Tools nodejs "fosslinuxnode" Stufen stage("Code Checkout") Schritte git branch: 'development', CredentialsId: 'fosslinuxgitlablogin', url: 'https://git.fosslinux.com/demo/fosslinux-demo.git' stage('Code Quality') steps script def scannerHome = tool 'fosslinxsonar'; withSonarQubeEnv("fosslinxSonarqubeserver") sh "$tool("fosslinxsonar")/bin/sonar-scanner" stage("Install Dependencies") steps sh "npm install" stage("unit Test") Schritte sh "npm test"
Fügen Sie das obige Pipeline-Skript hinzu und speichern Sie es.
Pipeline-Konzepte
a) Pipeline: Dies ist ein benutzerdefinierter Block, der alle Prozesse wie Build, Deploy usw. enthält.
b) Agent: Der Agentenabschnitt gibt an, wo die gesamte Pipeline oder eine bestimmte Phase in der Jenkins-Umgebung ausgeführt wird, je nachdem, wo der Agentenabschnitt platziert ist.
c) Beliebig: Diese Option führt die Pipeline/Stufe auf jedem verfügbaren Agenten aus.
d) Phase: Ein Phasenblock enthält eine Reihe von Schritten in einer Pipeline. Das heißt, das Klonen, Erstellen, Bereitstellen usw. eine Stufe verarbeiten.
e) Schritte: Eine Reihe von Schritten kann einem Phasenblock hinzugefügt werden. Dies ist einfach eine einzelne Aufgabe, die einen bestimmten Prozess ausführt. Klicken Sie nun auf Build.
Die Pipeline sollte beginnen zu laufen.
Hier ist eine fertige Pipeline:
Hier dreht sich alles um die Installation und Konfiguration von Jenkins Pipeline.