Cách cài đặt plugin trong Jenkins theo cách thủ công


119

Cài đặt plugin từ Trung tâm cập nhật dẫn đến:

Kiểm tra kết nối internet Không kết nối được với http://www.google.com.vn/ . Có lẽ bạn cần cấu hình proxy HTTP? Không thể triển khai plugin - Chi tiết hudson.util.IOException2: Không thể tải xuống từ http://updates.jenkins-ci.org/download/plugins/deploy/1.9/deploy.hpi

Có thể tải xuống plugin và cài đặt thủ công vào Jenkins không?

Câu trả lời:


156

Có, bạn có thể. Tải xuống plugin (tệp * .hpi) và đặt nó vào thư mục sau:

<jenkinsHome>/plugins/

Sau đó, bạn sẽ cần khởi động lại Jenkins.


7
Phương pháp này không tự động cài đặt bất kỳ plugin nào là phụ thuộc của plugin đang được cài đặt. Vì vậy, tôi không đề xuất nó và tôi bỏ phiếu từ chối vì lý do này. Vui lòng cho tôi biết nếu tôi nhầm lẫn và tôi sẽ hủy bỏ phiếu phản đối của mình.
Farrukh Najmi

8
Nếu bạn buộc phải cài đặt plugin theo cách thủ công (vì bất kỳ lý do gì), tôi không biết bất kỳ phương pháp nào khác sẽ xử lý tự động cài đặt các phụ thuộc.
Michael Küller

Làm thế nào tôi có thể tìm ra nhà của jenkins ở đâu? Bằng cách sử dụng whereis jenkins?
Đen

4
/var/lib/jenkinsTuy nhiên, tôi đã tìm thấy nó bên dưới , đã có rất nhiều plugin nhưng chúng kết thúc bằng .jpithay vì .hpi. Tôi nên làm gì?
Đen

3
Jenkins đổi tên tệp plugin trong quá trình cài đặt từ .hpi thành .jpi theo cách đó nó có thể phát hiện ra một plugin mới để cài đặt trên một plugin hiện có. Xem ở đây: stackoverflow.com/questions/30658375/…
Michael Küller vào

137
  1. Tải xuống plugin.
  2. Bên trong Jenkins: Quản lý JenkinsQuản lý Plugin → Có một tab tên là Nâng cao và trên trang đó có tùy chọn tải lên một plugin (phần mở rộng của tệp phải là hpi).

Đôi khi, khi tải xuống các plugin, bạn có thể nhận được các tệp (.zip), sau đó chỉ cần đổi tên bằng (.hpi) và sử dụng giao diện người dùng để cài đặt plugin.


4
Điều này có lẽ "an toàn" hơn so với stackoverflow.com/a/14953877/627806 vì nó đi qua giao diện người dùng.
Jon Burgess

Đôi khi điều này là cần thiết nếu Jenkins không khởi động được do cấu hình sai plugin. Ví dụ: tôi đã phải cài đặt thủ công vì vấn đề này .
dskrvk

1
Tôi đã cố gắng cài đặt plugin này, zip thay đổi để hpi, và tải lên cố gắng từ tùy chọn nâng cao trong quản lý plugin, nhưng nó được đưa ra lỗiA 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.

Bạn đã tìm thấy vấn đề gì? Chúng ta có thể biết ngoại lệ thực tế không?
jfcorugedo

1
Lưu ý rằng có một giới hạn kích thước do nginx áp đặt (xem: [ issue.jenkins-ci.org/browse/JENKINS-32575] ), vì vậy bạn có thể cần phải thay đổi cấu hình nginx hoặc tải lên theo cách thủ công.
Moshe Zvi

22

Nếu bạn sử dụng Docker, bạn nên đọc tệp này: https://github.com/cloudbees/jenkins-ci.org-docker/blob/master/plugins.sh

Ví dụ về Dockerfile mẹ:

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

plugins.txt

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

Tôi đang cố gắng giải quyết vấn đề này cho docker và tình cờ gặp câu trả lời này. Hoạt động tuyệt vời!
muglio

nó phụ thuộc vào cách jenkins được cài đặt. Trong cài đặt của tôi (apt-get install jenkins), tôi không thể tìm thấy tệp plugin.sh. Tuy nhiên, nếu chúng ta bắt đầu từ FROM jenkins thì nó tồn tại.
hadaytullah

lưu ý rằng bạn phải bao gồm plugin và tất cả các phụ thuộc của nó trong plugins.txt vì nó sẽ không giải quyết các phụ thuộc bắc cầu. Ví dụ: blueocean có hơn 10 phụ thuộc mà bạn cũng sẽ phải đưa vào theo cách thủ công ..
code4cause

Làm cách nào để sử dụng phương pháp này khi tôi đang chạy docker sau proxy? plugins.shkhông thể cài đặt plugin nếu proxy không được định cấu hình trong Jenkins. Và tôi không nghĩ rằng có một phương pháp để định cấu hình proxy trong Jenkins bằng Dockerfile.
7_R3X

13

Tôi đã tạo một tập lệnh đơn giản thực hiện như sau:

  • Tải xuống một hoặc nhiều plugin vào thư mục plugin
  • Quét tất cả các plugin trong thư mục đó để tìm các phần phụ thuộc bị thiếu
  • tải xuống các phụ thuộc này nữa
  • vòng lặp cho đến khi không còn phần phụ thuộc mở nào

Tập lệnh không yêu cầu jenkins đang chạy - tôi sử dụng nó để cung cấp một hộp docker.

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


URL hiện đã bị hỏng. Bạn có thể vui lòng đăng lại kịch bản của mình được không?
Charles Morin

11

Cập nhật cho Docker: sử dụng tập lệnh install-plugins.sh . Nó có một danh sách các tên plugin trừ phần mở rộng '-plugin'. Xem mô tả ở đây .

install-plugins.sh thay thế plugins.sh không dùng nữa hiện cảnh báo:

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

Để sử dụng plugins.txt theo plugins.sh, hãy xem sự cố này và cách giải quyết sau:

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


10

Đôi khi khi bạn tải xuống các plugin, bạn có thể nhận được các tệp (.zip), sau đó chỉ cần đổi tên bằng (.hpi) và sau đó giải nén tất cả các plugin và chuyển vào <jenkinsHome>/plugins/thư mục.



4

Câu trả lời được chấp nhận là chính xác, nhưng hãy đảm bảo rằng bạn cũng cài đặt tất cả các phụ thuộc cần thiết. Việc cài đặt bằng CLI hoặc web dường như đảm nhiệm việc này, nhưng các plugin của tôi không hiển thị trong trình duyệt hoặc sử dụng java -jar jenkins-cli.jar -s http://localhost:8080 list-pluginscho đến khi tôi cũng cài đặt các phần phụ thuộc.


1
Tôi đã tạo một ý chính đơn giản để liệt kê tất cả các phiên bản được yêu cầu mới nhất của plug-in phụ thuộc từ web (quét toàn bộ cây phụ thuộc): gist.github.com/Lucasus/1a6b8df71425c790361c
Łukasz Wiatrak

2

Trong trường hợp của tôi, tôi cần cài đặt một plugin cho một máy chủ xây dựng ngoại tuyến đang chạy Windows Server (phiên bản không thành vấn đề ở đây). Tôi đã cài đặt Jenkins trên máy tính xách tay của mình để kiểm tra trước các thay đổi và nó đang chạy trên localhost: 8080 dưới dạng dịch vụ windows.

Vì vậy, nếu bạn sẵn sàng dành thời gian để thiết lập Jenkins trên máy có kết nối Internet và thực hiện các thay đổi này đối với máy chủ ngoại tuyến Jenkins (nó hoạt động, được tôi xác nhận!), Bạn có thể làm theo các bước sau:

  • Jenkins trên máy tính xách tay của tôi: Mở Jenkins, http: // localhost: 8080
  • Điều hướng: Quản lý Jenkins | Tải xuống plugin mà không cần cài đặt tùy chọn
  • Windows Explorer: Sao chép tệp plugin đã tải xuống nằm trong thư mục "c: \ program files (x86) \ Jenkins \ plugins" (tức là role-strategy.jpi)
  • Dán nó vào một thư mục được chia sẻ trong máy chủ ngoại tuyến
  • Dừng Dịch vụ Jenkins (Máy chủ Ngoại tuyến Jenkins) thông qua Dịch vụ Thành phần, Dịch vụ Jenkins
  • Sao chép tệp plugin (tức là role-strategy.jpi) vào thư mục "c: \ program files (x86) \ Jenkins \ plugins" trên máy chủ (Jenkins ngoại tuyến)
  • Khởi động lại Jenkins và thì đấy! Nó sẽ được cài đặt.

2

Các câu trả lời được đưa ra hoạt động, với các plugin bổ sung.

Nếu bạn muốn thay thế / cập nhật một plugin tích hợp sẵn như plugin thông tin xác thực, có các phụ thuộc, thì bạn phải sử dụng giao diện người dùng. Để tự động hóa, tôi sử dụng:

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

1

Đây là một cách để sao chép plugin từ hộp Jenkins này sang hộp Jenkins khác.

Sao chép qua thư mục plugin:

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

Nén các plugin:

tar cvfJ plugins.tar.xz plugins

Sao chép chúng sang hộp Jenkins khác:

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

Khởi động lại Jenkins.


0

Để cài đặt plugin "git" với tất cả các phụ thuộc của nó:

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

Ở đây, plugin được cài đặt là git; phiên bản, được chỉ định @currentlà bị Jenkins bỏ qua. Jenkins đang chạy trên localhostcổng 8080, hãy thay đổi điều này nếu cần. Theo những gì tôi biết, đây là cách đơn giản nhất để cài đặt một plugin với tất cả các phụ thuộc của nó 'bằng tay'. Đã thử nghiệm trên Jenkinsv1.644

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.