Einführung
Mit Jenkins-Anmeldedaten (Credentials) können Sie Passwörter, Token und Schlüssel sicher in Jenkins speichern, anstatt Geheimnisse direkt in Ihre Job-Skripte einzutragen. Jobs können dann über eine eindeutige ID auf diese Anmeldedaten verweisen.
In diesem Lab verwenden Sie das Jenkins-Dashboard, um den globalen Speicher für Anmeldedaten zu öffnen, einen Benutzername/Passwort-Datensatz zu erstellen, zu bestätigen, dass Jenkins das Geheimnis maskiert und verschlüsselt, und den Datensatz später zu aktualisieren, ohne dessen ID zu ändern.
Den globalen Speicher für Anmeldedaten öffnen
In diesem Schritt finden Sie den Speicherort für Anmeldedaten im Jenkins-Dashboard. Jenkins organisiert Anmeldedaten nach Speichern und Domänen. Für Einsteiger ist der gängigste Ort der System-Speicher und die Global-Domäne.
Öffnen Sie die Desktop-Oberfläche. Firefox öffnet Jenkins automatisch. Falls nicht, rufen Sie http://localhost:8080 auf.
Vom Jenkins-Dashboard aus:
Klicken Sie in der linken Seitenleiste auf Manage Jenkins und anschließend auf Credentials. Klicken Sie auf der Seite "Credentials" auf System und dann auf Global.
Der Seitentitel sollte Global lauten, und es sollte angezeigt werden, dass diese Anmeldedaten überall verfügbar sind.

Führen Sie diesen Befehl im Terminal aus, um zu bestätigen, dass die Seite für globale Anmeldedaten erreichbar ist:
curl -fsS http://localhost:8080/manage/credentials/store/system/domain/_/ | grep -o 'Credentials that should be available everywhere' | tee /home/labex/project/credential-storage-page.txt
Sie sollten folgende Ausgabe sehen:
Credentials that should be available everywhere
Benutzername und Passwort als Anmeldedaten hinzufügen
In diesem Schritt erstellen Sie einen Anmeldedatensatz über das Jenkins-Formular. Die ID der Anmeldedaten ist wichtig, da Jobs und Pipelines später über diese ID darauf zugreifen.
Klicken Sie auf der Seite Global auf Add Credentials.
Füllen Sie das Formular mit folgenden Werten aus:
Kind:Username with passwordScope:GlobalUsername:guided-userPassword:guided-password-v1ID:guided-credsDescription:Guided lab credential for Jenkins storage
Klicken Sie auf Create.
Nachdem Jenkins zur Seite der globalen Domäne zurückgekehrt ist, sollten Sie einen Datensatz namens guided-creds sehen. Jenkins zeigt den Benutzernamen an, maskiert jedoch das Passwort.

Überprüfung der Speicherung durch Jenkins
In diesem Schritt untersuchen Sie, was Jenkins auf die Festplatte geschrieben hat. Dies ist keine Aufgabe, die Sie im täglichen Jenkins-Betrieb normalerweise durchführen, hilft Ihnen jedoch zu verstehen, warum Anmeldedaten sicherer sind als Passwörter im Klartext innerhalb von Job-Skripten.
Geben Sie im Terminal nur die relevanten Zeilen aus der Datei credentials.xml von Jenkins aus:
docker exec jenkins sh -lc "grep -n -E '<id>guided-creds</id>|<username>guided-user</username>|<password>' /var/jenkins_home/credentials.xml" | tee /home/labex/project/credential-file-lines.txt
Die Ausgabe sollte die ID und den Benutzernamen enthalten. Die Passwortzeile sollte ein verschlüsseltes Jenkins-Geheimnis in geschweiften Klammern enthalten, nicht den Klartext guided-password-v1.
Beispielausgabe:
...<id>guided-creds</id>
...<username>guided-user</username>
...<password>{...}</password>
Kehren Sie in Firefox zur Seite der globalen Jenkins-Domäne zurück. Die Zeile mit den Anmeldedaten sollte das Passwort ebenfalls als maskierten Text anzeigen, nicht als das tatsächliche Passwort.
Anmeldedaten aktualisieren, ohne die ID zu ändern
In diesem Schritt aktualisieren Sie die Beschreibung der Anmeldedaten über das Jenkins-Dashboard, während die ID unverändert bleibt. Dies verdeutlicht ein wichtiges Konzept für Einsteiger: Jobs sollten auf eine stabile ID wie guided-creds verweisen, während Administratoren die Metadaten der Anmeldedaten bei Bedarf anpassen können.
Auf der Seite Global:
Klicken Sie auf die Anmeldedaten guided-creds und dann auf Update credential. Lassen Sie Username, Password und ID unverändert. Ändern Sie die Description in Updated guided lab credential und klicken Sie auf Save.
Kehren Sie nach dem Speichern zur Seite der Global-Domäne zurück. Die ID der Anmeldedaten sollte weiterhin sichtbar sein, aber die Beschreibung sollte nun Updated guided lab credential lauten.

Führen Sie diesen Befehl aus, um zu bestätigen, dass Jenkins weiterhin dieselbe ID und die aktualisierte Beschreibung verwendet:
docker exec jenkins sh -lc "grep -n -E '<id>guided-creds</id>|<description>Updated guided lab credential</description>|<password>' /var/jenkins_home/credentials.xml" | tee /home/labex/project/updated-credential-lines.txt
Das Passwort sollte weiterhin verschlüsselt sein, und der Klartext guided-password-v1 sollte nicht erscheinen.
Zusammenfassung
Sie haben das Jenkins-Dashboard verwendet, um den globalen Speicher für Anmeldedaten zu öffnen, einen Benutzername/Passwort-Datensatz zu erstellen, zu beobachten, wie Jenkins das Geheimnis maskiert und verschlüsselt, und die Metadaten der Anmeldedaten zu aktualisieren, während die stabile ID beibehalten wurde.