젠킨스 플러그인 관리

젠킨스 플러그인 관리 (Managing Plugins)

젠킨스를 조직이나 개인 요구에 맞게 확장하는 가장 직접적인 수단이 **플러그인(Plugin)**이에요. 젠킨스 컨트롤러에 설치해 다양한 시스템과 통합할 수 있는 플러그인이 천 개가 넘죠. 플러그인은 일반적으로 Update Center(젠킨스 프로젝트가 운영하는 오픈소스 플러그인 인벤토리 서비스)에서, 의존성과 함께 자동으로 내려받아져요. 설치·업데이트·제거까지 플러그인 관리 방법을 하나씩 짚어볼게요.

출처: Managing Plugins - Jenkins Handbook

플러그인은 어떤 형태일까

플러그인은 필요한 코드·이미지·리소스를 모두 담은 자기 완결형 .hpi 파일로 패키징돼요. 설치하는 방식은 크게 두 가지예요 — 웹 UI의 Plugin Manager를 쓰거나, Jenkins CLI의 install-plugin 명령을 쓰는 거죠. 두 방식 모두 결과적으로 플러그인을 컨트롤러에 로드하지만, 필요한 권한 수준과 트레이드오프가 조금씩 달라요.

웹 UI로 플러그인 설치하기

가장 단순하고 흔한 방법은 관리자용 Manage Jenkins > Plugins 화면을 이용하는 거예요. Available 탭에서 Update Center에 등록된 플러그인을 검색하고 설치할 수 있어요. 필요한 플러그인을 찾아 선택하고 설치하면, 의존성이 있는 플러그인까지 함께 내려받아져요.

CLI로 플러그인 설치하기

명령줄에 익숙하다면 Jenkins CLI의 install-plugin을 쓸 수 있어요.

java -jar jenkins-cli.jar -s http://localhost:8080/ install-plugin SOURCE ... [-deploy] [-name VAL] [-restart]

SOURCE에는 세 가지를 줄 수 있어요. 로컬 파일 경로면 그 파일을, URL이면 해당 URL에서 내려받아 설치해요. 그 외에는 Update Center에 존재하는 플러그인의 숏네임(예: findbugs)으로 간주해 업데이트 센터에서 설치하죠. -deploy는 재시작을 미루지 않고 즉시 배포, -restart는 성공적으로 설치된 뒤 젠킨스를 재시작하라는 뜻이에요.

고급 설치 — 구버전 플러그인

Update Center는 플러그인의 최신 릴리스만 설치를 허용해요. 특정 구버전이 필요하다면 관리자가 예전 .hpi 아카이브를 직접 내려받아 수동 설치해야 해요.

수동 설치는 두 경로가 있어요. 웹 UI의 Manage Jenkins > Plugins > Advanced 탭에 있는 Deploy Plugin 영역에서 .hpi 파일이나 URL을 지정해 배포하거나, 컨트롤러의 JENKINS_HOME/plugins 디렉터리(Debian 계열에서는 보통 /var/lib/jenkins)에 파일을 복사하는 방식이에요. 수동으로 복사할 때는 Update Center에서 설치한 파일명과 맞추려고 .jpi 접미사로 이름을 짓는 게 좋아요. 젠킨스는 다운로드한 플러그인을 plugins 디렉터리에 저장할 때 원래 접미사(.jpi/.hpi)와 무관하게 .jpi 접미사로 보관하거든요.

플러그인 업데이트와 목록 확인

설치된 플러그인과 버전을 확인하는 가장 확실한 방법은 Manage Jenkins > Plugins > Installed 탭을 보는 거예요. 스크립트 콘솔에서 Groovy로도 확인할 수 있어요.

Jenkins.instance.pluginManager.plugins.each { println "${it.getShortName()}: ${it.getVersion()}" }

이 스크립트는 설치된 각 플러그인의 숏네임과 버전을 출력해요.

플러그인 비활성화와 제거

플러그인을 완전히 제거하기 전에 **비활성화(disable)**부터 시도해 보는 게 안전해요. 관리자는 Plugins > Installed 탭의 체크박스를 해제하거나, 컨트롤러에 JENKINS_HOME/plugins/PLUGIN_NAME.jpi.disabled 파일을 만들어 비활성화할 수 있어요.

CLI로도 컨트롤할 수 있어요.

# 활성화 (의존하는 플러그인도 함께 활성화)
java -jar jenkins-cli.jar -s http://localhost:8080/ enable-plugin PLUGIN ...

# 비활성화
java -jar jenkins-cli.jar -s http://localhost:8080/ disable-plugin PLUGIN ... [-quiet] [-restart] [-strategy strategy]

Pinned 플러그인

플러그인 버전을 특정 버전에 고정하고 싶으면 pin을 쓸 수 있어요. Plugin Manager에서 명시적으로 unpin 하거나, JENKINS_HOME/plugins/PLUGIN_NAME.hpi.pinned 파일을 만들고 지워서 제어해요. 이 pinned 파일이 있으면 젠킨스는 사용자가 지정한 그 플러그인 버전을 유지하죠. 버전 업그레이드로 인한 예상치 못한 동작 변화를 막고 싶을 때 유용해요.

더 알아보기