2017-06-06 3 views
0

Wie kann ich Jenkins über die init.groovy, die beim Start ausgeführt wird, globale Kennwörter hinzufügen?Hinzufügen eines globalen Passworts zu Jenkins mit init.groovy

Um klar zu sein, auf der Seite Jenkins verwalten -> Jenkins konfigurieren gibt es einen Abschnitt mit dem Titel "Globale Passwörter". Ich möchte während des Starts von Jenkins Einträge in diesem Abschnitt über den Groovy-Code hinzufügen.

Ich versuche, meine Jenkins-Umgebung durch groovy Code mit der init.groovy bereitzustellen. Ich muss globale Passwörter über die EnvInject plugin hinzufügen. die Mechanik zu verstehen, benötigt, um programmatisch hinzufügen globalen Kennwörter

def instance = Jenkins.getInstance() 


DescribableList<NodeProperty<?>, NodePropertyDescriptor> globalNodeProperties = 
    instance.getGlobalNodeProperties(); 

globalNodeProperties.add(
    new EnvInjectNodeProperty(false, "/var/lib/jenkins/secret.properties") 
); 

Ich bin jedoch versagt: Ich kann erfolgreich Pfad zu einer Datei für das gleiche Plugin mit diesem Code hinzufügen.

Antwort

2

Hier ist das Codebeispiel, das sollte funktionieren . Es scheint, dass die Methode save() auch GlobalNodeProperties hinzufügt, sodass Sie diese Sammlung nicht manuell hinzufügen müssen.

+0

Große Antwort. : +1: – chrx

0

https://github.com/jenkinsci/envinject-plugin/tree/master/src/main/java/org/jenkinsci/plugins/envinject

Ich versuche nicht dieses Plugin, aber es gibt eine Klasse: EnvInjectGlobalPasswordEntry

Ich denke, es so sein könnte:

globalNodeProperties.add(
    new EnvInjectGlobalPasswordEntry("pass-name", "the-password") 
); 
+0

Der EnvInjectGlobalPasswordEntry scheint das richtige Objekt zu sein, aber das Hinzufügen zu den globalNodeProperties funktioniert nicht. Es erstellt einen Datensatz in der Datei config.xml und nicht in der Datei envInject.xml. –

Verwandte Themen