Come installare manualmente un plugin in Jenkins


119

L'installazione di un plug-in dal Centro aggiornamenti produce:

Verifica della connettività Internet Impossibile connettersi a http://www.google.com/ . Forse hai bisogno di configurare il proxy HTTP? Deploy Plugin Failure - Details hudson.util.IOException2: impossibile scaricare da http://updates.jenkins-ci.org/download/plugins/deploy/1.9/deploy.hpi

È possibile scaricare il plug-in e installarlo manualmente in Jenkins?

Risposte:


156

Si, puoi. Scarica il plugin (file * .hpi) e mettilo nella seguente directory:

<jenkinsHome>/plugins/

Successivamente dovrai riavviare Jenkins.


7
Questo metodo non installa automaticamente i plugin che sono dipendenze del plugin installato. In quanto tale, non lo consiglio e per questo motivo voto negativo. Per favore fatemi sapere se mi sbaglio e annullerò il mio voto negativo.
Farrukh Najmi

8
Se sei costretto a installare manualmente un plugin (per qualsiasi motivo) non sono a conoscenza di nessun altro metodo che si occuperà anche dell'installazione automatica delle dipendenze.
Michael Küller

Come posso sapere dov'è la casa di jenkins? Usando whereis jenkins?
Nero

4
L'ho trovato sotto /var/lib/jenkinstuttavia, ci sono già molti plugin ma finiscono con .jpiinvece di .hpi. Cosa dovrei fare?
Nero

3
Jenkins rinomina il file del plugin durante l'installazione da .hpi a .jpi in questo modo è in grado di rilevare un nuovo plugin da installare su uno esistente. Vedi qui: stackoverflow.com/questions/30658375/...
Michael Küller

137
  1. Scarica il plugin.
  2. Dentro Jenkins: Gestisci JenkinsGestisci plugin → C'è una scheda chiamata Avanzate e in quella pagina c'è un'opzione per caricare un plugin (l'estensione del file deve essere hpi).

A volte, quando scarichi i plug-in potresti ottenere file (.zip), quindi rinominarli con (.hpi) e utilizzare l'interfaccia utente per installare il plug-in.


4
Questo è probabilmente "più sicuro" di stackoverflow.com/a/14953877/627806 poiché sta attraversando il front-end.
Jon Burgess

A volte questo è necessario se Jenkins non si avvia a causa di un'errata configurazione del plug-in. Ad esempio, ho dovuto eseguire un'installazione manuale a causa di questo problema .
dskrvk

1
Ho provato a installare questo plug-in, ho cambiato zip in hpi e ho provato a caricare dall'opzione avanzata in gestione plug-in, ma dà un erroreA 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.

Che problema hai riscontrato? Possiamo conoscere l'eccezione effettiva?
jfcorugedo

1
Nota che c'è un limite di dimensione imposto da nginx (vedi: [ issues.jenkins-ci.org/browse/JENKINS-32575] ), quindi potresti dover modificare la configurazione di nginx o caricare manualmente.
Moshe Zvi

22

Se utilizzi Docker, dovresti leggere questo file: https://github.com/cloudbees/jenkins-ci.org-docker/blob/master/plugins.sh

Esempio di un Dockerfile padre:

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

plugins.txt

<name>:<version>
<name2>:<version2>

Stavo cercando di risolvere questo problema per Docker e sono incappato in questa risposta. Funziona alla grande!
muglio

dipende dal modo in cui è installato jenkins. Nella mia installazione (apt-get install jenkins) non sono riuscito a individuare il file plugin.sh. Tuttavia, se partiamo da FROM jenkins, allora esiste.
hadaytullah

nota che devi includere il plugin e tutte le sue dipendenze in plugins.txt poiché non risolverà le dipendenze transitive. Ad esempio, blueocean ha più di 10 dipendenze che dovresti anche includere manualmente ..
code4cause

Come si utilizza questo metodo quando si esegue la finestra mobile dietro un proxy? plugins.shnon è possibile installare plug-in se il proxy non è configurato in Jenkins. E non penso che esista un metodo per configurare il proxy in Jenkins utilizzando Dockerfile.
7_R3X

13

Ho creato un semplice script che fa quanto segue:

  • Scarica uno o più plugin nella directory dei plugin
  • Scansiona tutti i plugin in quella directory per le dipendenze mancanti
  • scarica anche queste dipendenze
  • ciclo finché non vengono lasciate dipendenze aperte

Lo script non richiede jenkins in esecuzione: lo uso per eseguire il provisioning di una finestra mobile.

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


L'URL è rotto ora. Puoi ripubblicare il tuo script per favore?
Charles Morin

11

Aggiornamento per Docker: utilizza lo script install-plugins.sh . Ci vuole un elenco di nomi di plugin meno l'estensione "-plugin". Vedi la descrizione qui .

install-plugins.sh sostituisce il deprecato plugins.sh che ora avverte:

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

Per utilizzare un plugins.txt come per plugins.sh, vedere questo problema e questa soluzione alternativa:

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


10

A volte, quando scarichi i plug-in, potresti ottenere file (.zip), quindi rinominarli con (.hpi), quindi estrarre tutti i plug-in e spostarti nella <jenkinsHome>/plugins/directory.



4

La risposta accettata è accurata, ma assicurati di installare anche tutte le dipendenze necessarie. L'installazione utilizzando la CLI o il Web sembra risolverlo, ma i miei plugin non venivano visualizzati nel browser o utilizzati java -jar jenkins-cli.jar -s http://localhost:8080 list-pluginsfino a quando non ho installato anche le dipendenze.


1
Ho creato un semplice riassunto per elencare tutte le ultime versioni richieste delle dipendenze dei plugin dal web (scansiona l'intero albero delle dipendenze): gist.github.com/Lucasus/1a6b8df71425c790361c
Łukasz Wiatrak

2

Nel mio caso, avevo bisogno di installare un plug-in su un server di build offline che esegue un server Windows (la versione non avrà importanza qui). Ho già installato Jenkins sul mio laptop per testare le modifiche in anticipo ed è in esecuzione su localhost: 8080 come servizio Windows.

Quindi, se sei disposto a prenderti il ​​tempo per configurare Jenkins su una macchina con connessione Internet e portare queste modifiche al server offline Jenkins (funziona, confermato da me!), Questi sono i passaggi che potresti seguire:

  • Jenkins sul mio laptop: apri Jenkins, http: // localhost: 8080
  • Navigatore: Gestisci Jenkins | Scarica il plugin senza opzione di installazione
  • Esplora risorse di Windows: copia il file del plug-in scaricato che si trova nella cartella "c: \ program files (x86) \ Jenkins \ plugins" (ad es. Role-strategy.jpi)
  • Incollalo in una cartella condivisa nel server offline
  • Arrestare il servizio Jenkins (server offline Jenkins) tramite Servizi componenti, Servizio Jenkins
  • Copia il file del plug-in (ad esempio, role-strategy.jpi) nella cartella "c: \ program files (x86) \ Jenkins \ plugins" sul server (Offline Jenkins)
  • Riavvia Jenkins e voilà! Dovrebbe essere installato.

2

Le risposte fornite funzionano, con l'aggiunta di plugin.

Se desideri sostituire / aggiornare un plug-in integrato come il plug-in delle credenziali, che ha dipendenze, devi utilizzare il frontend. Per automatizzare utilizzo:

 curl -i -F file=@pluginfilename.hpi http://jenkinshost/jenkins/pluginManager/uploadPlugin

1

Questo è un modo per copiare i plugin da una scatola Jenkins a un'altra.

Copia nella directory dei plugin:

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

Comprimi i plugin:

tar cvfJ plugins.tar.xz plugins

Copiali sull'altra scatola di Jenkins:

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

Riavvia Jenkins.


0

Per installare il plugin "git" con tutte le sue dipendenze:

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

Qui, il plugin installato è git; la versione, specificata come, @currentviene ignorata da Jenkins. Jenkins è in esecuzione sulla localhostporta 8080, modificalo se necessario. Per quanto ne so, questo è il modo più semplice per installare un plugin con tutte le sue dipendenze "a mano". Testato su Jenkinsv1.644

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.