Meine Einrichtung verlangt von mir, dass ich mein LDAP-Passwort regelmäßig ändere.
In der Vergangenheit konnte ich die folgenden Schritte ausführen, um mein Passwort zu ändern: -
/var/lib/jenkins/config.xml
und ändern Sie <managerPassword/>
. Die neueste Version von Jenkins verwendet jedoch nicht mehr <managerPassword/>
. Stattdessen sehe ich <managerPasswordSecret/>
.
Ich bin mir nicht sicher, wie ich das neue geheime Passwort erstellen soll, also habe ich Folgendes getan: -
/var/lib/jenkins/config.xml
first. /var/lib/jenkins/config.xml
und ändern Sie <useSecurity/>
in false
. /var/lib/jenkins/config.xml
und kopieren Sie <managerPasswordSecret/>
. <managerPasswordSecret/>
durch den neuen Wert. Das ist unglaublich kompliziert.
Gibt es eine einfachere Möglichkeit, meine LDAP-Passwortänderung in Zukunft beizubehalten?
Vielen Dank!
Sie können weiterhin & lt; managerPassword & gt;.
verwendenErzeuge das neue verschlüsselte Passwort mit
perl -e 'benutze MIME :: Base64; print encode_base64 ("yourNewPassword"); '
Suchen Sie in Ihrer config.xml nach & lt; hudson & gt; / & lt; securityRealm & gt; / & lt; managerPasswordSecret & gt ;. Ändern Sie & lt; managerPasswordSecret & gt; nach & lt; managerPassword & gt; (sowohl vorher als auch nachher) und setzen Sie die Kodierung von # 1 zwischen ihnen. Speichern Sie die Datei.
Ich habe versucht, dasselbe zu tun, und das ist eine einfache Lösung (Verwendung von der Jenkins-Konsole):
%Vor%Die Decodierung ist einfacher:
println(hudson.util.Secret.decrypt(HashFromConfigXmlHere));
Ich bin kein Jenkins / Java Master, also benutze es auf eigene Gefahr.
Ich habe versucht, die Lösung von @alkuzad zur Verfügung gestellt und es funktioniert gut. Nur um zu verdeutlichen, dass Sie die Jenkins-Webkonsole nicht verwenden können, wenn das LDAP-Benutzerkennwort abgelaufen ist. Also, was ich getan habe, ist wie folgt (Ich habe groovy Skript-Plugin in Jenkins. Ich habe auch Run-Skript-Zugriff auf anonyme Benutzer - keine gute Idee, aber es ist die Art, wie ich zunächst gefunden, um dieses wiederkehrende Problem zu lösen).
java -jar jenkins-cli.jar -s groovy GroovyPasswordClass.txt
Dadurch wird ein verschlüsseltes Passwort gedruckt.
Nun, später habe ich eine bessere Möglichkeit gefunden, die Authentifizierung durchzuführen, wenn der Verzeichnisdienstanbieter MS Active Directory ist. In diesem Fall habe ich anstelle des LDAP-Plugins das Active Directory-Plugin für die Authentifizierung verwendet. Das fand ich besser, weil
1) Antwort ist schneller, wenn Active-Directory-Plugin anstelle von generischen LDAP-Protokoll-basierten Plugin verwendet 2) Das Active Directory-Plugin verwendet Benutzerdaten, mit denen der Jenkins-Dienst gestartet wurde und in Jenkins kein Benutzerkonto konfiguriert werden muss. Sie werden also nie eine Situation haben, dass Ihr Jenkins-Login nicht funktioniert, weil der für LDAP konfigurierte Benutzer ein abgelaufenes Passwort hat.
Ich hoffe, dies wird anderen helfen, dieses Problem zu lösen.
Keine der obigen Lösungen funktionierte für mich mit einer neueren Version von Jenkins (2.78). Was funktionierte, war das Einfügen von managerPasswordSecret ohne Verschlüsselung. Sobald ich Jenkins lief, wurde das Passwort für mich verschlüsselt.
Tags und Links jenkins continuous-integration hudson