Wenn Sie Windows-Server schon eine Weile verwalten, haben Sie sicherlich viele PowerShell-Skripte, um diese alltäglichen, aber notwendigen Aufgaben durchzuführen, wie das Zurücksetzen von Passwörtern, das Sammeln von Protokolldaten oder das Archivieren von Sicherungsdateien. Wussten Sie, dass PowerShell in Jenkins möglich ist?
Sie haben möglicherweise Skripte, die Sie regelmäßig ausführen, vielleicht haben Sie sogar einen Taskplaner eingerichtet, um Ihre PowerShell-Skripte zu automatisieren.
Es gibt einen besseren Weg.
In diesem Artikel erfahren Sie, wie Sie Jenkins unter Windows installieren und ein einfaches PowerShell-Skript ausführen können. Sie lernen, wie Sie Jenkins installieren, grundlegende Sicherheitsmaßnahmen einrichten, das PowerShell-Plugin aktivieren und einen Job ausführen, um eine einfache Textdatei mit Parametern zu erstellen, die wir eingeben werden.
Dieser Artikel soll eine grundlegende Einführung in Jenkins sein. Die Konfiguration, die Sie lernen werden, ist nicht unbedingt für Produktionsumgebungen gedacht.
Voraussetzungen
Der größte Teil dieses Artikels wird eine Schritt-für-Schritt-Anleitung sein. Wenn Sie mitmachen möchten, stellen Sie sicher, dass Sie einige Voraussetzungen erfüllen.
Die Anforderungen für Jenkins sind sehr gering und jeder moderne Computer kann sie erfüllen. Die Beispiele in diesem Artikel basieren alle auf Jenkins, das auf folgendem System läuft:
- Windows 10 Enterprise v.1903
- PowerShell Core v6
Obwohl Jenkins auf nahezu jeder Plattform ausgeführt werden kann, werde ich mich auf Windows 10 Enterprise konzentrieren, um die Dinge einfach zu halten.
Die Installation von Jenkins
Mit den erforderlichen Voraussetzungen erledigt, installieren wir nun Jenkins.
Die Installation von Jenkins ist einfach und unkompliziert. Gehen Sie zu https://www.jenkins.io/download/ und laden Sie die Langzeitunterstützung (LTS)-Version herunter. Es stehen zwei Versionen zur Verfügung, die LTS-Version und die „Wöchentliche“ Version. Die „Wöchentliche“ Version wird regelmäßig aktualisiert und kann instabil sein. Für diesen Artikel verwenden wir die LTS-Version. Dies ist die stabilste Version.
Wie Sie auf dem untenstehenden Screenshot sehen können, gibt es mehrere Optionen zur Auswahl. Wählen Sie die Windows-Version aus, um den Download zu starten.

Sobald Sie den Installer heruntergeladen haben, extrahieren Sie das ZIP-Archiv und führen Sie den Installer aus, indem Sie alle Standardwerte akzeptieren. Die Installation ist einfach.
Nach Abschluss der Installation öffnet Jenkins einen Browser mit der Getting Started-Seite. Diese Seite enthält das anfängliche Administratorpasswort, um Jenkins zu entsperren und die Konfiguration fortzusetzen. Wie Sie unten sehen können, zeigt Jenkins mir an, dass ich eine Textdatei unter C:\Program Files (x86)\Jenkins\secrets\initialAdminPassword lesen soll.

Gehen Sie zur angezeigten Datei, öffnen Sie sie und kopieren Sie das angezeigte Passwort. Verwenden Sie es als Administratorpasswort auf der Getting Started-Seite.
Installation von Plugins
Sobald Sie sich zum ersten Mal anmelden, wird Jenkins die endgültige Einrichtung abschließen und dann fragen, welche Plugins installiert werden sollen. Wie Sie unten im Screenshot sehen können, gibt es ein paar Auswahlmöglichkeiten.
Wenn Sie Install suggested plugins auswählen, wird ein empfohlener Satz von Plugins basierend auf den gängigsten Nutzungsszenarien installiert. Dazu gehören Plugins für Authentifizierungsanbieter, Interaktionen mit GitHub und Java-Erweiterungen. Select plugin to install ermöglicht es Ihnen, nur die benötigten Plugins aus einer Liste aller verfügbaren Plugins zu installieren.
Markieren Sie Install suggested plugins und klicken Sie auf OK. Dieser Prozess dauert einige Minuten, um die ersten Plugins zu installieren, daher ist jetzt ein guter Zeitpunkt, sich einen Kaffee zu holen.

Erstellung des Admin-Benutzers
Nachdem die Plugins installiert sind, besteht der nächste Schritt darin, unseren ersten Benutzer zu erstellen. Dieser erste Benutzer ist der Administrator für Jenkins und hat globale Berechtigungen, ähnlich wie der Unternehmensadministrator für Windows Server. Sie können unten sehen, wie die Seite Create First Admin User aussehen wird.

Ab diesem Zeitpunkt ist die Jenkins-Schnittstelle nur noch durch Eingabe eines gültigen Benutzernamens und Passworts zugänglich.
Einrichten der Jenkins Admin URL
Der letzte Schritt besteht darin, die URL für den Jenkins-Dienst einzurichten. Diese URL ist die Schnittstelle zur Verwaltung des Jenkins-Programms und sollte idealerweise auf einen voll qualifizierten Domainnamen (FQDN) eingestellt werden. Wenn Sie es auf einen FQDN einstellen, ermöglicht dies einen Fernzugriff ähnlich wie bei einer Website. Für diesen Artikel und um die Dinge einfach zu halten, akzeptieren Sie die Standard-URL.

Sicherheitseinstellungen vornehmen
Mit der Installation abgeschlossen, konfigurieren wir die Authentifizierung. Navigieren Sie zum Haupt-Dashboard, falls es noch nicht geöffnet ist. Klicken Sie im Haupt-Dashboard auf Manage Jenkins und dann auf Configure Global Security, um die Sicherheitseinstellungen wie unten gezeigt zu öffnen.

Auf der Seite Configure Global Security sehen Sie einige Optionen zur Auswahl. Für diesen Artikel werden wir die eigene Benutzerdatenbank von Jenkins verwenden, um es einfach zu halten. Es ist auch eine gute Idee, das Häkchen bei „Allow user to sign up“ zu entfernen, wie unten gezeigt. Wenn es aktiviert ist, kann jeder Benutzer ein Konto erstellen und sich Zugriff auf Jenkins verschaffen. .
Wie auf dem Bild unten zu sehen ist, gibt es weitere Optionen für die Authentifizierung.
- Delegate to servlet container – Dies wird verwendet, wenn Sie bereits Docker-Container mit Jenkins eingerichtet haben und die Authentifizierung über den Container ermöglichen möchten.
- LDAP – Diese Option wird verwendet, wenn Sie bereits Active Directory haben, das Sie für die Authentifizierung verwenden möchten.
Wählen Sie als nächstes die Option Logged-in users can do anything. In diesem Modus hat jeder angemeldete Benutzer die volle Kontrolle über Jenkins. Dies mag für die Produktion keine gute Idee sein, da dies jedem Benutzer Änderungen an den Einstellungen ermöglicht.

Aktivierung des PowerShell in Jenkins-Plugins
Mit der grundlegenden Sicherheitseinrichtung ist es an der Zeit, das PowerShell in Jenkins-Plugin zu konfigurieren. Um das PowerShell-Plugin zu installieren, navigieren Sie zum Haupt-Dashboard, klicken Sie auf Manage Jenkins und dann auf Manage Plugins, wie unten gezeigt.

Es gibt Hunderte von Plug-Ins, daher ist die beste Möglichkeit, das PowerShell-Plug-In zu finden, die Suche danach. Geben Sie „PowerShell“ in die Filterleiste ein und wählen Sie es aus der Liste aus. Überprüfen Sie das Kontrollkästchen, wie unten dargestellt, um es zu aktivieren. Dies ermöglicht es Jenkins, PowerShell-Befehle und Skripte direkt in die Textfelder innerhalb von Jenkins zu schreiben und PowerShell aufzurufen, ohne eine separate PowerShell-Konsole starten zu müssen.
Unten sehen Sie, wie das aussehen könnte.

Mit dem aktivierten Plug-In ist Jenkins bereit, PowerShell-Jobs auszuführen.
Erstellen eines PowerShell-Jobs in Jenkins
Die Installation des PowerShell-Plug-Ins in Jenkins ist abgeschlossen. Hier kommt der Spaß ins Spiel. Erstellen wir einen Job.
In Jenkins wird ein Job als eine Reihe von Aufgaben definiert, die ausgeführt werden sollen. Ein häufiges Szenario ist ein Job, der mit dem Kompilieren eines Programms beginnt, wenn ein Entwickler Code eincheckt. Ähnlich wie der Task-Manager in Windows Server.
Der einzurichtende Job besteht darin, das Verzeichnis „C:\Temp“ zu überprüfen und eine Textdatei mit einer benutzerdefinierten Nachricht in dieses Verzeichnis einzufügen.
Jenkins bietet verschiedene Projekttypen, manchmal auch Pipelines genannt, die sich auf spezifische Ziele konzentrieren. Die verschiedenen Projekttypen haben je nach gewähltem Typ unterschiedliche Einstellungen, Optionen und Parameter. Weitere Informationen zu den Projekttypen und wann sie verwendet werden sollten, finden Sie auf der Jenkins-Website.
Vom Hauptdashboard aus klicken Sie auf Neues Element. Geben Sie für den Jobnamen Erstellen einer Textdatei ein. Dies ist willkürlich, aber es ist eine gute Idee, es mit etwas zu bezeichnen, das Sinn ergibt.
Für diesen Artikel verwenden wir das Freestyle-Projekt. Dies bietet die größte Flexibilität zur Erstellung unseres Jobs. Markieren Sie das Freestyle-Projekt und scrollen Sie nach unten und klicken Sie auf OK.

Dieser Job wird ein parameterisiertes Projekt sein. Das bedeutet, dass wir Benutzer um Eingaben bitten können und diese Eingaben an den Job weitergegeben werden. Zum Beispiel nehmen wir an, wir haben einen Job PowerShell in Jenkins, der Protokolldateien in ein bestimmtes Verzeichnis kopiert. Wir können eine Eingabeaufforderung zum Job hinzufügen, die nach einem Dateinamen fragt, der in den Build aufgenommen werden soll, wenn wir den Job ausführen.
Aktivieren Sie das Kontrollkästchen Dieses Projekt ist parameterisiert in der Dropdown-Liste. Klicken Sie auf das Dropdown-Menü Parameter hinzufügen und wählen Sie den String-Parameter. Der Zeichenkettenparameter ist der Ort, an dem Sie die Nachricht eingeben, die in der Textdatei enthalten sein soll.

Fügen Sie dann einen zweiten Auswahlparameter hinzu. Es sollte wie im folgenden Bildschirmfoto aussehen. Diese Option ermöglicht es dem Benutzer, ein Element aus der Dropdown-Liste auszuwählen.

Die Jobeinstellungen sollten nun ungefähr wie im folgenden Screenshot aussehen.

Scrollen Sie zum Abschnitt Erstellen hinunter. Klicken Sie auf den kleinen Pfeil und wählen Sie Windows PowerShell aus. Dadurch weiß Jenkins, dass wir ein PowerShell-Skript ausführen. Hier geben wir auch das PowerShell-Skript ein. Dieser Job ist jetzt bereit. Klicken Sie auf Speichern.

Für ein Beispiel-Skript für unseren PowerShell-Job in Jenkins erstellen wir eine Datei im Temp-Verzeichnis und fügen eine einfache Nachricht hinzu.
Dies ist ein einfaches Skript, das ein Temp-Verzeichnis unter dem Stammverzeichnis erstellt, falls es noch nicht vorhanden ist, und eine Textdatei in diesem Verzeichnis erstellt.
TIPP: Schreiben Sie Ihr Skript zuerst in VSCode oder einem anderen Editor und fügen Sie es dann in das Feld ein.
Ausführen des PowerShell-Jobs in Jenkins
Schließlich sind Sie bereit, Ihren ersten Job auszuführen. Gehen Sie zurück zum Hauptdashboard und Sie sehen den Job Textdatei erstellen in der Hauptübersicht aufgelistet. Siehe unten.

Klicken Sie auf das Uhr-Symbol ganz rechts, um das Job-Formular anzuzeigen.

Geben Sie im Nachrichtenfeld den Text ein, den Sie in die Textdatei einfügen möchten, und klicken Sie auf „Build“. Sobald der Build abgeschlossen ist, klicken Sie auf „Konsolenausgabe“. Die Konsolenausgabe zeigt den Status des Jobs und ob der Job erfolgreich ausgeführt wurde.

Nun müssen Sie nur noch den Dateimanager öffnen und die Datei überprüfen. Navigieren Sie zum Temp-Verzeichnis und öffnen Sie die Textdatei. Sie enthält den gleichen Text wie in der Build-Nachricht eingegeben.

Zusammenfassung
Sie haben jetzt ein grundlegendes Verständnis von PowerShell in Jenkins. Es ist ein leistungsstolles Werkzeug, das verwendet werden kann, um Ihre PowerShell-Skripte zu verwalten und alles zu automatisieren!