2013-11-21 3 views
7

Wir betreiben Jenkins auf einem Server, der keinen Internetzugang hat (selbst über Proxy). Die Jenkins-Installation zu installieren und auf dem neuesten Stand zu halten ist ein Problem!Wie erstellt man einen lokalen Spiegel der öffentlichen Jenkins Update-Site?

Meine Idee war es, einen lokalen Spiegel der kompletten Jenkins öffentlichen Update-Site über eine Windows-Workstation mit Internetzugang herzustellen. Und dann machen Sie diesen lokalen Spiegel für Jenkins durch NFS-Freigabe verfügbar.

Also meine Fragen: Wie den lokalen Spiegel zu machen? Haben Sie eine bessere/einfachere Idee, die Installation von Jenkins auf dem neuesten Stand zu halten?

+0

In einem anderen Kommentar finden, jemand erwähnte Update-center.json. Beachten Sie, dass diese Datei für eine bestimmte URL digital signiert ist. Auf [diese Seite] (https://github.com/ikedam/backend-update-center2/wiki/How-to-create-your-own-Jenkins-Update-Center) erfahren Sie, wie Sie diese Datei neu generieren und signieren können . Dann können Sie das [Update Sites plugin] (https://wiki.jenkins-ci.org/display/JENKINS/UpdateSites+Manager+plugin) verwenden, um Ihre eigene Datei zu verwenden. Das ganze Verfahren ist derzeit allerdings etwas zu umständlich, um es in einer Antwort zusammenzufassen. – indiv

Antwort

0

Wo ist das Problem beim manuellen Herunterladen der WAR-Datei, Stoppen des Servers, Ersetzen des Krieges und Starten des Servers erneut? Das gleiche gilt für Plugins.

Wenn ich darüber nachdenke, gibt es wahrscheinlich einen besseren Weg, eine Sandbox Jenkins auf einem System zu haben, das Zugang zum Internet hat. Sie aktualisieren den Server mithilfe der Benutzeroberfläche und können das aktualisierte Jenkins dann gründlich testen. Wenn du fertig bist, musst du nur noch die Kriegs- und HPI-Dateien in deine 'Produktion' Jenkins kopieren. Jetzt hast du sogar einen schönen Prozess und QA an Ort und Stelle.

+2

Das Problem ist, ich möchte es nicht jedes Mal manuell tun, wenn ich aktualisieren möchte. Ich möchte den gesamten Upgrade-Prozess automatisieren.Aber Sie haben recht, ich habe darüber nachgedacht, die gesamte jenkins-Installation in einer Art Repository zu verwalten, sie von einem anderen System zu aktualisieren und die Änderungen zu übernehmen, sobald das Update in Ordnung ist. Aber ich denke, dass es in Jenkins einige Funktionen haben könnte, um das zu managen. – greydet

+0

Erstellen Sie einen Job, der die Änderungen von Ihrer Sandbox Jenkins auf die Produktion Jenkins überträgt. –

+2

Wenn Sie in Plugins/Erweitert bemerken, gibt es eine Einstellung für die Update-URL, die eine Art von JSON zurückgibt. Sie können möglicherweise Ihre Spiegelung diese Datei bekommen lassen, verwenden Sie sie, um alle notwendigen Plugins lokal herunterzuladen, dann schreiben Sie sie um und legen Sie eine modifizierte Version des JSON offen, die auf die lokalen Kopien zeigt. Nicht so anders als bei der Spiegelung eines NuGet-Servers. – Rich

2

Für eine Update-Website zu erzeugen (update-center.json) können Sie https://github.com/jenkins-infra/backend-update-center2 Projekt

Meine Schritte verwenden:

  1. selbst signiertes Zertifikat generieren
 
    openssl genrsa -out your-update-center.key 1024 
    openssl req -new -x509 -days 1095 -key your-update-center.key -out your-update-center.crt 
  1. setzen Sie alle Plugins in Ihr Nexus 2 Maven Repository
  2. Clone und bauen Backend-update-center2 Projekt
  3. erzeugen update-center.json
mvn exec:java -Dexec.args="-id default -h /dev/null 
    -o update-center.json -repository ULR_TO_NEXUS_REPO 
    -remoteIndex .index/nexus-maven-repository-index.gz -repositoryName YOUR_REPO_NAME 
    -directLink -pretty -nowiki -key your-update-center.key 
    -certificate your-update-center.crt 
    -root-certificate your-update-center.crt" 
  1. veröffentlichen Sie Ihre Update-center.json. Hat erreichbar über http/https
  2. Kopie sein, erzeugt Ihr-update-center.crt zum JENKINS_HOME/update-Center-rootCAs Ordner
  3. "Jenkins → Plugin → Update-Website Erweitert → verwalten" definieren Link zu den veröffentlichten Update -center.json

PS. Vergessen Sie nicht, die nexus-maven-repository-index.gz-Indexdatei zu erstellen und zu veröffentlichen. Verwenden Sie dazu die Aufgabe "Veröffentlichen Sie die Indizes".

Einige zusätzliche Informationen über Updater Centre bei https://github.com/ikedam/backend-update-center2/wiki/How-to-create-your-own-Jenkins-Update-Center

+0

Dies kann Teil der Lösung sein, sobald das Plugin lokal verfügbar ist. Aber gibt es eine Möglichkeit, die Plugins automatisch aus dem öffentlichen Jenkins-Plugin-Repository zu spiegeln? – greydet

Verwandte Themen