Wie kann ich eine Jenkins-Jobkonfiguration ohne Neustart programmgesteuert ändern?

10

Jenkins-Jobs haben config.xml-Dateien, in denen die Konfiguration dieses Jobs gespeichert ist.

Ich habe einen "Job Manager" -Job, der die Konfiguration anderer Jobs ändert, aber ich kann ihn anscheinend nicht dazu bringen, die neue Konfiguration zu bestätigen, ohne Jenkins neu zu starten.

Das Befehlszeilentool jenkins-cli.jar scheint seltsamerweise keine Option für diese Aktion zu haben.

Es ist möglich, die Konfiguration über die Weboberfläche zu bearbeiten und diese ohne Neustart speichern / bestätigen zu lassen, sodass es nicht so aussieht, als wäre dies eine technische Unmöglichkeit.

Mein bester Versuch war es, an dieselbe Adresse zu posten, die das Webinterface hat

wget --post-file=config.xml --user=joe.shmoe --password=secret01 \
     --no-check-certificate                                      \
     https://jenkins.company.com/job/myProject/config.xml

... aber ich bekomme einen 403 trotz gültiger Anmeldeinformationen (Kopie eingefügt, um keine Tippfehler zu gewährleisten)

Hat jemand irgendwelche Ideen oder weiß etwas Einfaches, das mir fehlt?

Catskul
quelle
Heiliger Strohsack. DAS FUNKTIONIERT WIRKLICH !!! (mit der Authentifizierung behoben, wie Catskul unten vorschlägt, oder in meinem Fall ohne Authentifizierung) Ich habe seit Stunden nach dieser Technik gesucht ...
Dave Dopson

Antworten:

8

Es stellt sich heraus, dass die Crutial-Informationen die Option "--auth-no-herausfordern" von wget zu sein scheinen, die anscheinend für obskure Webserver-Konfigurationen wie Jenkins gedacht ist, die nicht dem erwarteten Protokoll folgen:

wget --auth-no-challenge --user=joe.shmoe --password=secret  \
     --post-file=config.xml --no-check-certificate           \
     https://jenkins.company.com/job/myProject/config.xml
Catskul
quelle
4

Ich bevorzuge Curl ....

curl "http://localhost:18080/jenkins/job/npm-package-aaa/config.xml" -si --data-binary "$XML" -H "Content-Type: text/xml" 
Dave Dopson
quelle