본문 바로가기
카테고리 없음

[Infra] Jenkins 설치 Pipeline Webhook

by sujupark54 2026. 2. 18.

Jenkins는 CI/CD 자동화를 위해 가장 널리 사용되는 오픈소스 도구 중 하나다. 하지만 처음 접하는 입장에서는 설치 단계부터 막막하게 느껴질 수 있다. Jenkins는 도커 기반으로 간단히 실행할 수도 있고, 공식 홈페이지에서 직접 다운로드해 서버에 설치할 수도 있다.

가볍게 기능을 테스트하거나 학습 목적이라면 도커 방식이 편리하다. 반면 운영 환경에서 장기간 안정적으로 사용하려면 공식 설치 패키지를 이용한 방식이 더 적합하다. 서비스 재시작, 플러그인 관리, 권한 설정 측면에서 안정성이 높기 때문이다.

공식 설치 후 Jenkins를 실행하면 초기 관리자 비밀번호 입력 화면이 나타난다. 이 비밀번호는 Jenkins가 설치된 서버의 특정 파일에 저장되어 있으며, 해당 값을 입력해야 초기 설정을 진행할 수 있다. Linux나 macOS 환경에서는 /var/lib/jenkins/secrets/initialAdminPassword 경로에서 확인할 수 있고, Windows 환경에서는 Jenkins 설치 디렉터리 하위 secrets 폴더에서 확인할 수 있다.

초기 비밀번호를 입력한 뒤에는 플러그인 설치와 관리자 계정 생성 단계가 이어진다. 이 과정에서는 기본 추천 설정을 그대로 사용하는 것이 좋다. 대부분의 CI/CD 시나리오에 필요한 플러그인이 자동으로 설치되며, 추후 필요한 플러그인은 언제든 추가할 수 있다.


Jenkins Pipeline 설치 구성

Jenkins 설치가 완료되면 가장 먼저 파이프라인을 생성하게 된다. Jenkins는 기본적으로 8080 포트에서 실행되며, 브라우저에서 localhost:8080으로 접속하면 대시보드를 확인할 수 있다. 대시보드에서 New Item을 선택하면 Pipeline, Folder 등 다양한 항목을 생성할 수 있다.

Pipeline은 Jenkins가 수행할 작업의 흐름을 정의하는 핵심 단위다. 코드 빌드, 테스트, 배포 같은 작업을 단계별로 명확하게 구분할 수 있다. 실무에서는 Jenkins 내부 UI에서 직접 작성하기보다는 원격 저장소에 파이프라인 스크립트를 두고 이를 불러오는 방식을 주로 사용한다.

이를 위해 Pipeline 설정에서 Definition을 “Pipeline script from SCM”으로 선택한다. SCM은 Git을 선택하고, 파이프라인 스크립트가 위치한 원격 저장소 주소와 접근 권한(Credentials)을 함께 설정한다. 브랜치와 스크립트 경로를 지정하면 Jenkins는 해당 파일을 읽어 파이프라인을 실행한다.

Credentials는 Jenkins가 외부 저장소에 접근하기 위한 인증 정보다. Github을 사용하는 경우 Username과 Password 또는 Token 기반으로 등록할 수 있다. 이렇게 설정된 Credentials는 여러 파이프라인에서 재사용할 수 있어 관리가 편리하다.


Pipeline Github Webhook 연동

Pipeline 구성이 끝났다면 외부 이벤트로 Jenkins를 자동 실행시키는 단계가 필요하다. 이를 위해 많이 사용하는 방식이 Github Webhook이다. Webhook은 Github 저장소에서 특정 이벤트가 발생했을 때 외부 서버로 HTTP 요청을 보내는 기능이다.

Jenkins에서는 Generic Webhook Trigger 플러그인을 설치해 Webhook 요청을 파이프라인 트리거로 사용할 수 있다. 플러그인 설치 후 Pipeline 설정의 Triggers 항목에서 Generic Webhook Trigger를 활성화하면 된다.

보안을 위해 토큰 값을 함께 설정하는 것이 일반적이다. 이 토큰은 Github Webhook 설정 시 쿼리 파라미터로 함께 전달되어야 하며, 토큰이 일치하지 않으면 트리거가 실행되지 않는다. 이를 통해 외부의 무분별한 호출을 방지할 수 있다.

Webhook 요청의 Body에는 이벤트 종류, 브랜치 정보, 액션 값 등이 포함된다. Jenkins에서는 이 값을 파싱해 환경 변수로 저장할 수 있으며, 특정 값일 때만 파이프라인을 실행하도록 필터링할 수도 있다. 예를 들어 merge 이벤트이면서 특정 라벨이 포함된 경우에만 배포하도록 제어할 수 있다.

이렇게 구성된 구조에서는 개발자가 Github에 코드를 병합하는 순간 자동으로 Jenkins 파이프라인이 실행된다. 그 결과 개발 환경 배포, 운영 환경 배포, 혹은 릴리즈 패키징까지 사람의 개입 없이 일관된 방식으로 처리할 수 있다.


정리하면, Jenkins 설치는 비교적 간단하지만 설치 이후 Pipeline과 Webhook을 어떻게 구성하느냐에 따라 CI/CD 품질이 크게 달라진다. 초기에는 단순한 파이프라인으로 시작하되, 점진적으로 환경과 요구사항에 맞게 확장해 나가는 것이 바람직하다.