Jenkins에서 수동으로 플러그인을 설치하는 방법


119

업데이트 센터에서 플러그인을 설치하면 다음과 같은 결과가 발생합니다.

인터넷 연결 확인 http://www.google.com/에 연결하지 못했습니다 . HTTP 프록시를 구성해야합니까? 플러그인 배포 실패-세부 정보 hudson.util.IOException2 : http://updates.jenkins-ci.org/download/plugins/deploy/1.9/deploy.hpi 에서 다운로드하지 못했습니다.

플러그인을 다운로드하여 Jenkins에 수동으로 설치할 수 있습니까?

답변:


156

그래 넌 할수있어. 플러그인 (* .hpi 파일)을 다운로드하고 다음 디렉토리에 넣으십시오.

<jenkinsHome>/plugins/

그 후에 Jenkins를 다시 시작해야합니다.


7
이 방법은 설치중인 플러그인의 종속성 인 플러그인을 자동으로 설치하지 않습니다. 따라서 나는 그것을 권장하지 않으며 이러한 이유로 하향 투표하고 있습니다. 내가 착각 한 경우 알려 주시면 내 반대표를 취소하겠습니다.
Farrukh Najmi

8
어떤 이유로 든 수동으로 플러그인을 설치해야하는 경우 종속성을 자동으로 설치하는 다른 방법도 알지 못합니다.
Michael Küller

젠킨스의 집이 어디에 있는지 어떻게 알 수 있습니까? 사용하여 whereis jenkins?
블랙

4
나는 아래에 그것을 발견 /var/lib/jenkins하지만, 이미 많은 플러그인이있다 그러나 그들은으로 끝나는 .jpi대신 .hpi. 어떻게해야합니까?
블랙

3
Jenkins는 설치 중에 플러그인 파일의 이름을 .hpi에서 .jpi로 변경하여 기존 플러그인 위에 설치할 새 플러그인을 감지 할 수 있습니다. 여기를 참조하십시오 : stackoverflow.com/questions/30658375/...
마이클 Küller

137
  1. 플러그인을 다운로드하십시오.
  2. Jenkins 내부 : Jenkins 관리플러그인 관리고급 이라는 탭이 있으며 해당 페이지에는 플러그인을 업로드하는 옵션이 있습니다 (파일 확장자는 hpi 여야 함).

때로는 플러그인을 다운로드 할 때 (.zip) 파일을 얻은 다음 (.hpi)로 이름을 바꾸고 UI를 사용하여 플러그인을 설치할 수 있습니다.


4
이것은 프론트 엔드를 통과하기 때문에 stackoverflow.com/a/14953877/627806 보다 "안전" 합니다.
Jon Burgess

플러그인 구성이 잘못되어 Jenkins가 시작되지 않는 경우에 필요한 경우가 있습니다. 예를 들어이 문제 때문에 수동 설치를해야했습니다 .
dskrvk

1
나는 플러그인을 관리하는 고급 옵션에서이 플러그인, HPI로 변경된 우편 및 시도 업로드 설치를 시도하지만, 오류주고있다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.

어떤 문제를 발견 했습니까? 실제 예외를 알 수 있습니까?
jfcorugedo

1
nginx (참조 : [ issues.jenkins-ci.org/browse/JENKINS-32575] ) 에는 크기 제한이 있으므로 nginx 구성을 변경하거나 수동으로 업로드해야 할 수 있습니다.
Moshe Zvi

22

Docker를 사용하는 경우 다음 파일을 읽어야합니다. https://github.com/cloudbees/jenkins-ci.org-docker/blob/master/plugins.sh

상위 Dockerfile의 예 :

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

plugins.txt

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

나는 도커를 위해 이것을 해결하려고 노력하고 있었고이 대답을 우연히 발견했습니다. 잘 작동합니다!
muglio

젠킨스가 설치된 방식에 따라 다릅니다. 내 설치 (apt-get install jenkins)에서 plugin.sh 파일을 찾을 수 없습니다. 그러나 우리가 젠킨스에서 시작하면 존재합니다.
hadaytullah

전 이적 종속성을 해결하지 않으므로 plugins.txt에 플러그인과 모든 종속성을 포함해야합니다. 예를 들어, blueocean에는 수동으로 포함해야하는 10 개 이상의 종속성이 있습니다.
code4cause

프록시 뒤에서 도커를 실행할 때이 방법을 어떻게 사용합니까? plugins.sh프록시가 Jenkins에 구성되지 않은 경우 플러그인을 설치할 수 없습니다. Dockerfile을 사용하여 Jenkins에서 프록시를 구성하는 방법이 없다고 생각합니다.
7_R3X

13

다음을 수행하는 간단한 스크립트를 만들었습니다.

  • 플러그인 디렉토리에 하나 이상의 플러그인 다운로드
  • 해당 디렉토리의 모든 플러그인에서 누락 된 종속성을 검색합니다.
  • 이 종속성도 다운로드하십시오.
  • 열린 종속성이 남지 않을 때까지 반복

이 스크립트에는 실행중인 젠킨스가 필요하지 않습니다.이 스크립트를 사용하여 도커 상자를 프로비저닝합니다.

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


이제 URL이 깨졌습니다. 스크립트를 다시 게시 해 주시겠습니까?
Charles Morin

11

Docker 업데이트 : install-plugins.sh 스크립트를 사용하십시오 . '-plugin'확장자를 제외한 플러그인 이름 목록을 사용합니다. 여기 에서 설명을 참조 하십시오 .

install-plugins.sh는 이제 다음과 같이 경고하는 사용되지 않는 plugins.sh를 대체합니다.

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

plugins.sh에 따라 plugins.txt를 사용하려면 이 문제 와이 해결 방법을 참조하십시오 .

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


10

때로는 플러그인을 다운로드 할 때 (.zip) 파일을 얻은 다음 (.hpi)로 이름을 바꾼 다음 모든 플러그인을 추출하고 <jenkinsHome>/plugins/디렉토리 로 이동할 수 있습니다.



4

허용되는 대답은 정확하지만 필요한 모든 종속성도 설치해야합니다. CLI 또는 웹을 사용하여 설치하면이 문제를 해결하는 것 같지만 내 플러그인이 브라우저에 표시되지 않거나 java -jar jenkins-cli.jar -s http://localhost:8080 list-plugins종속성을 설치할 때까지 사용하지 않았습니다 .


1
웹에서 필요한 모든 최신 버전의 플러그인 종속성을 나열하는 간단한 요점을 만들었습니다 (전체 종속성 트리 스캔) : gist.github.com/Lucasus/1a6b8df71425c790361c
Łukasz Wiatrak

2

제 경우에는 Windows Server를 실행하는 오프라인 빌드 서버에 플러그인을 설치해야했습니다 (여기서 버전은 중요하지 않음). 미리 변경 사항을 테스트하기 위해 랩톱에 Jenkins를 이미 설치했으며 localhost : 8080에서 Windows 서비스로 실행 중입니다.

따라서 인터넷에 연결된 컴퓨터에서 Jenkins를 설정하고 이러한 변경 사항을 오프라인 서버 Jenkins로 전달하려는 경우 (작동하며 확인했습니다!) 다음 단계를 따르십시오.

  • 내 노트북의 Jenkins : Jenkins를 엽니 다. http : // localhost : 8080
  • 네비게이터 : Jenkins 관리 | 설치 옵션없이 플러그인 다운로드
  • Windows 탐색기 : "c : \ program files (x86) \ Jenkins \ plugins"폴더에있는 다운로드 한 플러그인 파일 (예 : role-strategy.jpi)을 복사합니다.
  • 오프라인 서버의 공유 폴더에 붙여 넣기
  • 구성 요소 서비스, Jenkins 서비스를 통해 Jenkins 서비스 (오프라인 서버 Jenkins) 중지
  • 플러그인 파일 (예 : role-strategy.jpi)을 (오프라인 Jenkins) 서버의 "c : \ program files (x86) \ Jenkins \ plugins"폴더에 복사합니다.
  • Jenkins와 짜잔을 다시 시작하십시오! 설치해야합니다.

2

플러그인이 추가 된 작업에 대한 답변입니다.

종속성이있는 자격 증명 플러그인과 같은 내장 플러그인을 교체 / 업데이트하려면 프런트 엔드를 사용해야합니다. 자동화하려면 다음을 사용합니다.

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

1

이것은 한 Jenkins 상자에서 다른 상자로 플러그인을 복사하는 방법입니다.

플러그인 디렉토리를 복사합니다.

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

플러그인 압축 :

tar cvfJ plugins.tar.xz plugins

다른 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"

Jenkins를 다시 시작하십시오.


0

모든 종속성과 함께 "git"플러그인을 설치하려면 :

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

여기서 설치된 플러그인은 git; @currentJenkins에서 무시되는 버전 입니다. Jenkins가 localhost포트 8080에서 실행 중이므로 필요에 따라 변경하십시오. 내가 아는 한, 이것은 모든 종속성이있는 플러그인을 '수동으로'설치하는 가장 간단한 방법입니다. Jenkins에서 테스트v1.644

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.