So installieren Sie ein Plugin manuell in Jenkins

119

Das Installieren eines Plugins aus dem Update Center führt zu:

Überprüfen der Internetverbindung Fehler beim Herstellen einer Verbindung zu http://www.google.com/ . Möglicherweise müssen Sie den HTTP-Proxy konfigurieren? Fehler beim Bereitstellen des Plugins - Details hudson.util.IOException2: Fehler beim Herunterladen von http://updates.jenkins-ci.org/download/plugins/deploy/1.9/deploy.hpi

Ist es möglich, das Plugin herunterzuladen und manuell in Jenkins zu installieren?

Kishore Tamire
quelle

Antworten:

156

Ja, du kannst. Laden Sie das Plugin (* .hpi-Datei) herunter und legen Sie es in folgendem Verzeichnis ab:

<jenkinsHome>/plugins/

Danach müssen Sie Jenkins neu starten.

Michael Küller
quelle
7
Diese Methode installiert keine Plugins automatisch, die Abhängigkeiten des zu installierenden Plugins sind. Als solches empfehle ich es nicht und stimme aus diesem Grund ab. Bitte lassen Sie mich wissen, wenn ich mich irre, und ich werde meine Ablehnung rückgängig machen.
Farrukh Najmi
8
Wenn Sie gezwungen sind, ein Plugin manuell zu installieren (aus welchem ​​Grund auch immer), ist mir keine andere Methode bekannt, die sich auch um die automatische Installation von Abhängigkeiten kümmert.
Michael Küller
Wie kann ich herausfinden, wo die Heimat von Jenkins ist? Mit whereis jenkins?
Schwarz
4
Ich fand es /var/lib/jenkinsjedoch unter , es gibt bereits viele Plugins, aber sie enden mit .jpistatt .hpi. Was soll ich machen?
Schwarz
3
Jenkins benennt die Plugin-Datei während der Installation von .hpi in .jpi um, sodass ein neues Plugin erkannt werden kann, das über ein vorhandenes installiert werden soll. Siehe hier: stackoverflow.com/questions/30658375/…
Michael Küller
137
  1. Laden Sie das Plugin herunter.
  2. Innerhalb von Jenkins: Jenkins verwaltenPlugins verwalten → Es gibt eine Registerkarte namens Erweitert und auf dieser Seite gibt es eine Option zum Hochladen eines Plugins (die Erweiterung der Datei muss hpi sein).

Wenn Sie Plugins herunterladen, erhalten Sie manchmal (.zip) Dateien. Benennen Sie sie dann einfach mit (.hpi) um und installieren Sie das Plugin über die Benutzeroberfläche.

jfcorugedo
quelle
4
Dies ist wahrscheinlich "sicherer" als stackoverflow.com/a/14953877/627806, da es das Front-End durchläuft.
Jon Burgess
Manchmal ist dies erforderlich, wenn Jenkins aufgrund einer falschen Konfiguration des Plugins nicht gestartet werden kann. Zum Beispiel musste ich wegen dieses Problems eine manuelle Installation durchführen .
dskrvk
1
Ich habe versucht, dieses Plugin zu installieren, zip in hpi geändert und versucht, von der erweiterten Option in Plugins verwalten hochzuladen, aber es gibt einen FehlerA problem occurred while processing the request. Please check our bug tracker to see if a similar problem has already been reported. If it is already reported, please vote and put a comment on it to let us gauge the impact of the problem. If you think this is a new issue, please file a new issue. When you file an issue, make sure to add the entire stack trace, along with the version of Jenkins and relevant plugins.
Welches Problem haben Sie gefunden? Können wir die tatsächliche Ausnahme kennen?
jfcorugedo
1
Beachten Sie, dass nginx eine Größenbeschränkung auferlegt (siehe: [ issue.jenkins-ci.org/browse/JENKINS-32575] ). Daher müssen Sie möglicherweise entweder die nginx-Konfiguration ändern oder manuell hochladen.
Moshe Zvi
22

Wenn Sie Docker verwenden, sollten Sie diese Datei lesen: https://github.com/cloudbees/jenkins-ci.org-docker/blob/master/plugins.sh

Beispiel einer übergeordneten Docker-Datei:

FROM jenkins
COPY plugins.txt /plugins.txt
RUN /usr/local/bin/plugins.sh /plugins.txt

plugins.txt

<name>:<version>
<name2>:<version2>
SergioArcos
quelle
Ich habe versucht, dies für Docker zu lösen und bin auf diese Antwort gestoßen. Funktioniert super!
Muglio
es hängt davon ab, wie jenkins installiert ist. In meiner Installation (apt-get install jenkins) konnte ich die Datei plugin.sh nicht finden. Wenn wir jedoch von FROM jenkins ausgehen, existiert es.
Hadaytullah
Beachten Sie, dass Sie das Plugin und alle seine Abhängigkeiten in plugins.txt aufnehmen müssen, da es keine transitiven Abhängigkeiten auflöst. Zum Beispiel hat blueocean mehr als 10 Abhängigkeiten, die Sie auch manuell
einschließen
Wie verwende ich diese Methode, wenn ich Docker hinter einem Proxy ausführe? plugins.shPlugins können nicht installiert werden, wenn der Proxy nicht in Jenkins konfiguriert ist. Und ich glaube nicht, dass es eine Methode gibt, um Proxy in Jenkins mithilfe von Dockerfile zu konfigurieren.
7_R3X
13

Ich habe ein einfaches Skript erstellt, das Folgendes ausführt:

  • Laden Sie ein oder mehrere Plugins in das Plugin-Verzeichnis herunter
  • Scannen Sie alle Plugins in diesem Verzeichnis auf fehlende Abhängigkeiten
  • Laden Sie auch diese Abhängigkeiten herunter
  • Schleife, bis keine offenen Abhängigkeiten mehr vorhanden sind

Das Skript erfordert keine laufenden Jenkins - ich verwende es, um eine Docker-Box bereitzustellen.

https://gist.github.com/micw/e80d739c6099078ce0f3

Michael Wyraz
quelle
URL ist jetzt kaputt. Können Sie bitte Ihr Skript erneut veröffentlichen?
Charles Morin
11

Update für Docker: Verwenden Sie das Skript install-plugins.sh . Es wird eine Liste der Plugin-Namen abzüglich der Erweiterung '-plugin' benötigt. Siehe die Beschreibung hier .

install-plugins.sh ersetzt die veraltete plugins.sh, die jetzt warnt:

WARN: plugins.sh is deprecated, please switch to install-plugins.sh

Informationen zum Verwenden einer plugins.txt gemäß plugins.sh finden Sie in diesem Problem und in dieser Problemumgehung:

RUN /usr/local/bin/install-plugins.sh $(cat /usr/share/jenkins/plugins.txt | tr '\n' ' ')

Satolizard
quelle
10

Wenn Sie Plugins herunterladen, erhalten Sie manchmal (.zip) -Dateien. Benennen Sie sie dann einfach mit (.hpi) um, extrahieren Sie alle Plugins und wechseln Sie in das <jenkinsHome>/plugins/Verzeichnis.

Dnyaneshwar Kalme
quelle
4

Die akzeptierte Antwort ist korrekt, aber stellen Sie sicher, dass Sie auch alle erforderlichen Abhängigkeiten installieren. Die Installation über die CLI oder das Web scheint sich darum zu kümmern, aber meine Plugins wurden nicht im Browser angezeigt oder verwendet, java -jar jenkins-cli.jar -s http://localhost:8080 list-pluginsbis ich auch die Abhängigkeiten installiert habe.

jdf
quelle
1
Ich habe eine einfache Übersicht erstellt, um alle erforderlichen neuesten Versionen von Plugin-Abhängigkeiten aus dem Web aufzulisten
Łukasz Wiatrak
2

In meinem Fall musste ich ein Plugin auf einem Offline-Build-Server installieren, auf dem ein Windows Server ausgeführt wird (die Version spielt hier keine Rolle). Ich habe Jenkins bereits auf meinem Laptop installiert, um Änderungen im Voraus zu testen, und es läuft auf localhost: 8080 als Windows-Dienst.

Wenn Sie sich also die Zeit nehmen möchten, Jenkins auf einem Computer mit Internetverbindung einzurichten und diese Änderungen auf den Offline-Server Jenkins zu übertragen (dies funktioniert, von mir bestätigt!), Können Sie folgende Schritte ausführen:

  • Jenkins auf meinem Laptop: Öffnen Sie Jenkins, http: // localhost: 8080
  • Navigator: Jenkins verwalten | Plugin ohne Installationsoption herunterladen
  • Windows Explorer: Kopieren Sie die heruntergeladene Plugin-Datei, die sich im Ordner "c: \ Programme (x86) \ Jenkins \ plugins" befindet (dh role-Strategy.jpi).
  • Fügen Sie es in einen freigegebenen Ordner auf dem Offline-Server ein
  • Beenden Sie den Jenkins-Dienst (Offline Server Jenkins) über Component Services, Jenkins Service
  • Kopieren Sie die Plugin-Datei (dh role-Strategy.jpi) in den Ordner "c: \ Programme (x86) \ Jenkins \ plugins" auf dem Server (Offline Jenkins)
  • Starten Sie Jenkins und voila neu! Es sollte installiert sein.
yyardim
quelle
2

Die gegebenen Antworten funktionieren mit zusätzlichen Plugins.

Wenn Sie ein integriertes Plugin wie das Plugin für Anmeldeinformationen, das Abhängigkeiten aufweist, ersetzen / aktualisieren möchten, müssen Sie das Frontend verwenden. Zur Automatisierung benutze ich:

 curl -i -F [email protected] http://jenkinshost/jenkins/pluginManager/uploadPlugin
bbaassssiiee
quelle
1

Dies ist eine Möglichkeit, Plugins von einer Jenkins-Box in eine andere zu kopieren.

Kopieren Sie über das Plugins-Verzeichnis:

scp -r jenkins-box.url.com:/var/lib/jenkins/plugins .

Komprimieren Sie die Plugins:

tar cvfJ plugins.tar.xz plugins

Kopieren Sie sie in die andere Jenkins-Box:

scp plugins.tar.xz different-jenkins-box.url.com
ssh different-jenkins-box.url.com "tar xvfJ plugins.tar.xz -C /var/lib/jenkins"

Starten Sie Jenkins neu.

jmunsch
quelle
0

So installieren Sie das Plugin "git" mit all seinen Abhängigkeiten:

curl -XPOST http://localhost:8080/pluginManager/installNecessaryPlugins -d '<install plugin="git@current" />'

Hier ist das Plugin installiert git; Die angegebene Version @currentwird von Jenkins ignoriert. Jenkins läuft am localhostPort 8080, ändern Sie dies nach Bedarf. Soweit ich weiß, ist dies der einfachste Weg, ein Plugin mit all seinen Abhängigkeiten "von Hand" zu installieren. Auf Jenkins getestetv1.644

m.kocikowski
quelle