Jenkins'te bir eklenti manuel olarak nasıl kurulur


119

Güncelleme merkezinden bir eklenti yüklemek şu sonuçları doğurur:

İnternet bağlantısı kontrol ediliyor http://www.google.com/ adresine bağlanılamadı . Belki de HTTP proxy'yi yapılandırmanız gerekiyor? Eklenti Dağıtma Hatası - Ayrıntılar hudson.util.IOException2: http://updates.jenkins-ci.org/download/plugins/deploy/1.9/deploy.hpi adresinden indirilemedi

Eklentiyi indirip manuel olarak Jenkins'e kurmak mümkün mü?

Yanıtlar:


156

Evet yapabilirsin. Eklentiyi (* .hpi dosyası) indirin ve aşağıdaki dizine yerleştirin:

<jenkinsHome>/plugins/

Daha sonra Jenkins'i yeniden başlatmanız gerekecek.


7
Bu yöntem, yüklenen eklentinin bağımlılıkları olan herhangi bir eklentiyi otomatik olarak kurmaz. Bu nedenle tavsiye etmiyorum ve bu nedenle eksi oy kullanıyorum. Lütfen yanıldıysam bana bildirin ve olumsuz oyumu geri alacağım.
Farrukh Najmi

8
Bir eklentiyi manuel olarak yüklemeye zorlanırsanız (herhangi bir nedenle), bağımlılıkları otomatik olarak kurmayı da sağlayacak başka bir yöntemin farkında değilim.
Michael Küller

Jenkins'in evinin nerede olduğunu nasıl öğrenebilirim? Kullanarak whereis jenkins?
Siyah

4
/var/lib/jenkinsAncak altında buldum , zaten birçok eklenti var ama .jpiyerine ile bitiyorlar .hpi. Ne yapmalıyım?
Siyah

3
Jenkins, kurulum sırasında eklenti dosyasını .hpi'den .jpi'ye yeniden adlandırır, böylece mevcut bir eklentinin üzerine kurulacak yeni bir eklentiyi tespit edebilir. Buraya bakın: stackoverflow.com/questions/30658375/…
Michael Küller

137
  1. Eklentiyi indirin.
  2. Jenkins'in İçinde: Jenkins'i YönetEklentileri YönetGelişmiş adında bir sekme vardır ve bu sayfada bir eklenti yükleme seçeneği vardır (dosyanın uzantısı hpi olmalıdır).

Bazen, eklentileri indirdiğinizde (.zip) dosyaları alabilir ve ardından (.hpi) ile yeniden adlandırabilir ve eklentiyi yüklemek için kullanıcı arayüzünü kullanabilirsiniz.


4
Ön uçtan geçtiği için bu , stackoverflow.com/a/14953877/627806'dan muhtemelen "daha güvenli" .
Jon Burgess

Bazen, Jenkins eklenti yanlış yapılandırması nedeniyle başlatılamazsa bu gereklidir. Örneğin, bu sorun nedeniyle manuel kurulum yapmak zorunda kaldım .
dskrvk

1
Bu eklentiyi yüklemeyi denedim, A 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.

Ne problem buldun? Gerçek istisnayı bilebilir miyiz?
jfcorugedo

1
Nginx tarafından uygulanan bir boyut sınırı olduğunu unutmayın (bkz: [ issue.jenkins-ci.org/browse/JENKINS-32575] ), bu nedenle nginx yapılandırmasını değiştirmeniz veya manuel olarak yüklemeniz gerekebilir.
Moshe Zvi

22

Docker kullanıyorsanız, şu dosyayı okumalısınız: https://github.com/cloudbees/jenkins-ci.org-docker/blob/master/plugins.sh

Üst Dockerfile örneği:

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

plugins.txt

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

Bunu docker için çözmeye çalışıyordum ve bu cevaba rastladım. Harika çalışıyor!
muglio

jenkins'in nasıl kurulduğuna bağlıdır. Kurulumumda (apt-get install jenkins) plugin.sh dosyasını bulamadım. Ancak, Jenkins'ten başlarsak, o zaman var.
hadaytullah

Geçişli bağımlılıkları çözmeyeceği için eklentiyi ve tüm bağımlılıklarını plugins.txt dosyasına dahil etmeniz gerektiğini unutmayın. Örneğin, blueocean'ın 10'dan fazla bağımlılığı vardır ve manuel olarak eklemeniz gerekir ..
code4cause

Docker'ı bir proxy arkasında çalıştırdığımda bu yöntemi nasıl kullanırım? plugins.shproxy Jenkins'te yapılandırılmamışsa eklentiler yüklenemez. Dockerfile kullanarak Jenkins'te proxy'yi yapılandırmanın bir yöntemi olduğunu sanmıyorum.
7_R3X

13

Aşağıdakileri yapan basit bir komut dosyası oluşturdum:

  • Eklenti dizinine bir veya daha fazla eklenti indirin
  • Eksik bağımlılıklar için o dizindeki tüm eklentileri tarayın
  • bu bağımlılıkları da indirin
  • açık bağımlılık kalmayana kadar döngü

Komut dosyası çalışan jenkins gerektirmez - bunu bir docker kutusu sağlamak için kullanıyorum.

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


URL şimdi bozuk. Lütfen senaryonuzu yeniden yayınlayabilir misiniz?
Charles Morin

11

Docker için güncelleme: install-plugins.sh komut dosyasını kullanın . Eklenti adlarının '-plugin' uzantısı hariç bir listesini alır. Buradaki açıklamaya bakın .

install-plugins.sh, kullanımdan kaldırılan plugins.sh'nin yerini alır ve şu anda uyarıda bulunur:

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

Plugins.sh'ye göre bir plugins.txt kullanmak için bu soruna ve bu geçici çözüme bakın :

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


10

Bazen eklentileri indirdiğinizde (.zip) dosyaları alabilir, ardından (.hpi) ile yeniden adlandırabilir ve ardından tüm eklentileri çıkarabilir ve <jenkinsHome>/plugins/dizine geçebilirsiniz .



4

Kabul edilen cevap doğrudur, ancak gerekli tüm bağımlılıkları da yüklediğinizden emin olun. CLI veya web kullanarak yükleme bunu hallediyor gibi görünüyor, ancak eklentilerim tarayıcıda görünmüyor veya java -jar jenkins-cli.jar -s http://localhost:8080 list-pluginsbağımlılıkları da yükleyene kadar kullanılmıyordu .


1
Eklenti bağımlılıklarının gerekli tüm son sürümlerini web'den listelemek için basit bir özet oluşturdum
Łukasz Wiatrak

2

Benim durumumda, bir Windows Server çalıştıran çevrimdışı bir derleme sunucusuna bir eklenti yüklemem gerekiyordu (sürüm burada önemli değil). Önceden değişiklikleri test etmek için Jenkins'i dizüstü bilgisayarıma kurdum ve localhost: 8080'de Windows hizmeti olarak çalışıyor.

Dolayısıyla, Jenkins'i İnternet bağlantısı olan bir makinede kurmaya zaman ayırmak ve bu değişiklikleri çevrimdışı sunucu Jenkins'e taşımak istiyorsanız (çalışıyor, benim tarafımdan onaylandı!), Takip edebileceğiniz adımlar şunlardır:

  • Dizüstü bilgisayarımdaki Jenkins: Jenkins'i açın, http: // localhost: 8080
  • Gezgin: Jenkins'i Yönetin | Eklentiyi yükleme seçeneği olmadan indirin
  • Windows Gezgini: "c: \ program files (x86) \ Jenkins \ plugins" klasöründe (yani role-Strategy.jpi) bulunan indirilmiş eklenti dosyasını kopyalayın
  • Çevrimdışı sunucuda paylaşılan bir klasöre yapıştırın
  • Bileşen Hizmetleri, Jenkins Hizmeti aracılığıyla Jenkins Hizmetini (Çevrimdışı Sunucu Jenkins) durdurun
  • Eklenti dosyasını (yani role-Strategy.jpi) (Çevrimdışı Jenkins) sunucusundaki "c: \ program files (x86) \ Jenkins \ plugins" klasörüne kopyalayın
  • Jenkins'i yeniden başlatın ve işte! Kurulmalıdır.

2

Eklenen eklentilerle birlikte verilen cevaplar işe yarar.

Bağımlılıkları olan kimlik bilgileri eklentisi gibi yerleşik bir eklentiyi değiştirmek / güncellemek istiyorsanız, ön ucu kullanmanız gerekir. Otomatikleştirmek için kullanıyorum:

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

1

Bu, eklentileri bir Jenkins kutusundan diğerine kopyalamanın bir yoludur.

Eklenti dizini üzerine kopyalayın:

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

Eklentileri sıkıştırın:

tar cvfJ plugins.tar.xz plugins

Bunları diğer Jenkins kutusuna kopyalayın:

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

Jenkins'i yeniden başlatın.


0

"Git" eklentisini tüm bağımlılıkları ile kurmak için:

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

Burada yüklenen eklenti git; olarak belirtilen sürüm, @currentJenkins tarafından yok sayılır. Jenkins localhostportta çalışıyor, 8080bunu gerektiği gibi değiştirin. Bildiğim kadarıyla bu, tüm bağımlılıkları ile 'elle' bir eklenti kurmanın en basit yoludur. Jenkins üzerinde test edildiv1.644

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.