Cara menginstal plugin di Jenkins secara manual


119

Menginstal plugin dari Pusat pembaruan menghasilkan:

Memeriksa konektivitas internet Gagal menyambung ke http://www.google.com/ . Mungkin Anda perlu mengkonfigurasi proxy HTTP? Deploy Plugin Failure - Detail hudson.util.IOException2: Gagal mengunduh dari http://updates.jenkins-ci.org/download/plugins/deploy/1.9/deploy.hpi

Apakah mungkin untuk mendownload plugin dan menginstalnya secara manual ke Jenkins?

Jawaban:


156

Ya kamu bisa. Unduh plugin (file * .hpi) dan letakkan di direktori berikut:

<jenkinsHome>/plugins/

Setelah itu, Anda perlu memulai ulang Jenkins.


7
Metode ini tidak secara otomatis menginstal plugin apa pun yang merupakan dependensi dari plugin yang sedang diinstal. Karena itu saya tidak merekomendasikannya dan saya memilih down-voting untuk alasan ini. Beri tahu saya jika saya salah dan saya akan membatalkan suara tidak suka saya.
Farrukh Najmi

8
Jika Anda terpaksa menginstal plugin secara manual (untuk alasan apa pun), saya tidak mengetahui metode lain yang akan menangani penginstalan dependensi secara otomatis juga.
Michael Küller

Bagaimana saya bisa mengetahui di mana rumah jenkins? Dengan menggunakan whereis jenkins?
Hitam

4
Saya menemukannya di bawah. /var/lib/jenkinsNamun, sudah ada banyak plugin tetapi diakhiri dengan, .jpibukan .hpi. Apa yang harus saya lakukan?
Hitam

3
Jenkins mengganti nama file plugin selama penginstalan dari .hpi menjadi .jpi dengan cara itu ia dapat mendeteksi plugin baru untuk dipasang di atas yang sudah ada. Lihat di sini: stackoverflow.com/questions/30658375/…
Michael Küller

137
  1. Unduh plugin.
  2. Di dalam Jenkins: Kelola JenkinsKelola Plugin → Ada tab bernama Advanced dan di halaman itu ada opsi untuk mengunggah plugin (ekstensi file harus hpi).

Terkadang, saat Anda mengunduh plugin, Anda mungkin mendapatkan file (.zip) lalu ganti namanya dengan (.hpi) dan gunakan UI untuk menginstal plugin.


4
Ini mungkin "lebih aman" daripada stackoverflow.com/a/14953877/627806 karena melalui front-end.
Jon Burgess

Terkadang ini diperlukan jika Jenkins gagal memulai karena kesalahan konfigurasi plugin. Misalnya saya harus melakukan penginstalan manual karena masalah ini .
dskrvk

1
Saya mencoba menginstal plugin ini, mengubah zip menjadi hpi, dan mencoba mengupload dari opsi lanjutan dalam mengelola plugin, tetapi memberikan kesalahanA 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.

Masalah apa yang Anda temukan? Bisakah kita mengetahui pengecualian sebenarnya?
jfcorugedo

1
Perhatikan bahwa ada batas ukuran yang diberlakukan oleh nginx (lihat: [ issues.jenkins-ci.org/browse/JENKINS-32575] ), jadi Anda mungkin perlu mengubah konfigurasi nginx atau mengunggah secara manual.
Moshe Zvi

22

Jika Anda menggunakan Docker, Anda harus membaca file ini: https://github.com/cloudbees/jenkins-ci.org-docker/blob/master/plugins.sh

Contoh Dockerfile induk:

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

plugins.txt

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

Saya mencoba menyelesaikan ini untuk buruh pelabuhan dan menemukan jawaban ini. Bekerja dengan baik!
muglio

itu tergantung pada cara pemasangan jenkins. Dalam instalasi saya (apt-get install jenkins), saya tidak dapat menemukan file plugin.sh. Namun, jika kita mulai dari DARI jenkins maka itu ada.
hadaytullah

perhatikan bahwa Anda harus menyertakan plugin dan semua dependensinya di plugins.txt karena itu tidak akan menyelesaikan dependensi transitif. Misalnya, blueocean memiliki 10+ dependensi yang juga harus Anda sertakan secara manual ..
code4cause

Bagaimana cara menggunakan metode ini ketika saya menjalankan buruh pelabuhan di belakang proxy? plugins.shtidak dapat memasang plugin jika proxy tidak dikonfigurasi di Jenkins. Dan saya rasa tidak ada metode untuk mengkonfigurasi proxy di Jenkins menggunakan Dockerfile.
7_R3X

13

Saya telah membuat skrip sederhana yang melakukan hal berikut:

  • Unduh satu atau lebih plugin ke direktori plugin
  • Pindai semua plugin di direktori itu untuk melihat dependensi yang hilang
  • unduh dependensi ini juga
  • loop hingga tidak ada dependensi terbuka yang tersisa

Skrip tidak memerlukan jenkins yang sedang berjalan - Saya menggunakannya untuk menyediakan kotak buruh pelabuhan.

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


URL rusak sekarang. Bisakah Anda memposting ulang skrip Anda?
Charles Morin

11

Pembaruan untuk Docker: gunakan skrip install-plugins.sh . Dibutuhkan daftar nama plugin tanpa ekstensi '-plugin'. Simak uraiannya di sini .

install-plugins.sh menggantikan plugins.sh yang tidak digunakan lagi yang sekarang memperingatkan:

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

Untuk menggunakan plugins.txt sesuai plugins.sh, lihat masalah ini dan solusi berikut:

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


10

Terkadang ketika Anda mengunduh plugin, Anda mungkin mendapatkan file (.zip) kemudian hanya mengganti nama dengan (.hpi) dan kemudian mengekstrak semua plugin dan pindah ke <jenkinsHome>/plugins/direktori.



4

Jawaban yang diterima akurat, tetapi pastikan Anda juga menginstal semua dependensi yang diperlukan juga. Menginstal menggunakan CLI atau web tampaknya menangani hal ini, tetapi plugin saya tidak muncul di browser atau digunakan java -jar jenkins-cli.jar -s http://localhost:8080 list-pluginshingga saya juga menginstal dependensi.


1
Saya telah membuat inti sederhana untuk mencantumkan semua versi terbaru dependensi plugin yang diperlukan dari web (memindai seluruh pohon dependensi): gist.github.com/Lucasus/1a6b8df71425c790361c
Łukasz Wiatrak

2

Dalam kasus saya, saya perlu menginstal plugin ke server build offline yang menjalankan Windows Server (versi tidak masalah di sini). Saya sudah menginstal Jenkins di laptop saya untuk menguji perubahan terlebih dahulu dan berjalan di localhost: 8080 sebagai layanan windows.

Jadi, jika Anda bersedia meluangkan waktu untuk menyiapkan Jenkins pada mesin dengan koneksi Internet dan membawa perubahan ini ke server offline Jenkins (berhasil, saya konfirmasi!), Berikut adalah langkah-langkah yang dapat Anda ikuti:

  • Jenkins di laptop saya: Buka Jenkins, http: // localhost: 8080
  • Navigator: Kelola Jenkins | Unduh plugin tanpa opsi instal
  • Windows Explorer: Salin file plugin yang diunduh yang terletak di folder "c: \ program files (x86) \ Jenkins \ plugins" (yaitu role-strategy.jpi)
  • Tempel ke folder bersama di server offline
  • Hentikan Layanan Jenkins (Server Jenkins Offline) melalui Layanan Komponen, Layanan Jenkins
  • Salin file plugin (yaitu role-strategy.jpi) ke dalam folder "c: \ program files (x86) \ Jenkins \ plugins" di server (Offline Jenkins)
  • Mulai ulang Jenkins dan voila! Ini harus dipasang.

2

Jawaban yang diberikan berhasil, dengan plugin tambahan.

Jika Anda ingin mengganti / mengupdate plugin bawaan seperti plugin kredensial yang memiliki dependensi, maka Anda harus menggunakan frontend. Untuk mengotomatiskan saya menggunakan:

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

1

Ini adalah cara untuk menyalin plugin dari satu kotak Jenkins ke kotak lainnya.

Salin direktori plugin:

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

Kompres plugin:

tar cvfJ plugins.tar.xz plugins

Salin ke kotak Jenkins lainnya:

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

Mulai ulang Jenkins.


0

Untuk menginstal plugin "git" dengan semua dependensinya:

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

Di sini, plugin yang diinstal adalah git; versinya, ditentukan sebagai @currentdiabaikan oleh Jenkins. Jenkins berjalan di localhostporta 8080, ubah ini sesuai kebutuhan. Sejauh yang saya tahu, ini adalah cara termudah untuk menginstal plugin dengan semua dependensinya 'dengan tangan'. Diuji di Jenkinsv1.644

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.