젠킨스 플러그인 관리
젠킨스 플러그인 관리 (Managing Plugins)
젠킨스를 조직이나 개인 요구에 맞게 확장하는 가장 직접적인 수단이 **플러그인(Plugin)**이에요. 젠킨스 컨트롤러에 설치해 다양한 시스템과 통합할 수 있는 플러그인이 천 개가 넘죠. 플러그인은 일반적으로 Update Center(젠킨스 프로젝트가 운영하는 오픈소스 플러그인 인벤토리 서비스)에서, 의존성과 함께 자동으로 내려받아져요. 설치·업데이트·제거까지 플러그인 관리 방법을 하나씩 짚어볼게요.
플러그인은 어떤 형태일까
플러그인은 필요한 코드·이미지·리소스를 모두 담은 자기 완결형 .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 파일이 있으면 젠킨스는 사용자가 지정한 그 플러그인 버전을 유지하죠. 버전 업그레이드로 인한 예상치 못한 동작 변화를 막고 싶을 때 유용해요.
더 알아보기
- 설치 가능한 플러그인 검색: plugins.jenkins.io
- 파이프라인용 플러그인 더 알아보기: Pipeline
- 관리 전체 개요: Managing Jenkins