젠킨스로 배우는 CI/CD 파이프라인 구축 - 젠킨스 소개 및 구성

2025. 5. 12. 21:19·Study/젠킨스로 배우는 CI,CD 파이프라인 구축

💡CI ( Continuous Integration )

  • 개발자를 위한 자동화 프로세스인  지속적인 통합
  • 어플리케이션의 새로운 코드 변경 사항이 정기적으로 빌드/ 테스트 되어 공유 Repository에 (ex. git,github) 통합하는것을 의미한다.
  • 다수의 개발자가 작업할 경우 레포지토리에 쌓이는 commit들이 충돌하는 것을 자동화된 빌드와 테스트로 방지할수 있다.

💡 CD ( Continuous Deployment ) : 지속적인 배포

  • 수동적으로 배포하는것을 지속적인 제공이라 하는데, 이것을 자동화하는것

💡 젠킨스

  • CI/DI 프로세스를 자동화하고 생산성을 높이는 데 많이 사용되는 자동화 서버
  • 소프트웨어 개발 프로세스의 다양한 단계를 자동화하는 도구
  • 중앙 소스 코드 레포지터리에서 최신 코드 가져오기, 소스 코드 컴파일, 단위 테스트 실행, 산출물을 다양한 유형으로 패키징, 산출물을 여러 종류의 환경으로 배포하기 등의 기능을 제공한다.
  • 젠킨스는 아파치 톰캣처럼 서블릿 컨테이너 내부에서 실행되는 서버 시스템이다. 자바로 작성되었고, 소프트웨어 개발과 관련된 다양한 도구를 지원한다.

일반적인 젠킨스의 CI/CD 프로세스는 다음과 같다.

  1. 다수의 개발자가 각자의 브랜치에서 변경 작업을 한 후, 이를 중앙 리포지터로 푸시한다. 코드 리뷰가 끝나면 이를 다른 브랜치에 병합한다.
  2. 브랜치의 변경 사항이 젠킨스에 통보된다.
  3. 젠킨스가 통보를 수신하면 작업(job)을 시작한다.

젠킨스 작업이란, 빌드 릴리스 수명 주기의 여러 단계를 수행하기 위해 순차적 프로세스로 구현한 태스크 및 하위 태스크들을 말한다.

  1. 사용 중인 소스 코드 관리 시스템에 맞는 플러그인을 사용해 레포에서 변경된 파일을 가져온다.
  2. 메이븐 같은 빌드 도구와 관련 젠킨스 플러그인을 사용해 변경된 파일들을 컴파일한다.
  3. 빌드 도구를 재사용해 컴파일된 코드의 단위/통합 테스트를 실행한다.
  4. 정적 분석 도구를 실행해 코딩 표준을 준수하는지와 데드 코드가 있는지를 확인한다. 정적 분석 도구로는 소나큐브 등을 사용한다.
  5. 컴파일과 테스트까지 완료된 파일들을 .jar 또는 .war 같은 라이브러리 형태로 번들링한다. 젠킨스 플러그인으로 실행되는 빌드 도구를 사용한다.
  6. 빌드된 라이브러리 파일을 테스트/프로덕션 환경으로 배포한다.
  7. E-E 테스트 자동화 도구(ex. 셀레늄, 프로트랙터 같은 UI 자동화 도구)를 사용해 배포된 애플리케이션을 대상으로 테스트를 실행한다.
  8. 새로 생성된 애플리케이션의 상태와 E-E 테스트 결과가 포함된 이메일을 프로젝트 팀원들에게 전송한다.

💡젠킨스 설치 방법 (https://www.jenkins.io/doc/book/)

  • MSI 인스톨러로 설치 

https://www.jenkins.io/download/

 

Download and deploy

Jenkins – an open source automation server which enables developers around the world to reliably build, test, and deploy their software

www.jenkins.io

  • .war 파일로 설치 

https://get.jenkins.io/war-stable/

 

War Jenkins Packages

Jenkins War Packages This is the WAR package repository of Jenkins for installation. You will need to explicitly install a supported Java runtime environment (JRE), e.g. Eclipse Temurin. To determine the Java version that is supported for your Jenkins envi

get.jenkins.io

 

  • 도커이미지로 설치 ( 도커 : 애플리케이션을 빌드하고 배포하는 도구 )  

https://hub.docker.com/r/jenkins/jenkins

 

https://hub.docker.com/r/jenkins/jenkins

 

hub.docker.com

 

더보기

.jenkins폴더 내 $user.home 디렉터리(현재 사용자 디렉터리)에 설치된다.(MSI로 설치한 경우 사용자가 선택한 디렉토리에 설치)

젠킨스 설치 디렉토리 = JENKINS_HOME

💡 젠킨스 서버 시작

.war 파일을 사용해 젠킨스 서버를 시작할 수 있다. 만약 젠킨스를 서비스로 설치한 경우라면 젠킨스 서비스를 시작해야한다. 윈도우 시스템에서 젠킨스 서버를 시작하는 두가지 방법을 알아보자

  • .war파일로 젠킨스 서버를 시작 
Java -jar <.war_파일까지의_경로> --httpListenAddress=<시스템의_IP_주소> --httpPort=<원하는_포트_번호>
  • 서비스 방식으로 젠킨스 서버 시작

서비스(앱) 항목을 선택하면 서비스 창이 노출 > Jenkins항목에서 마우스 우클릭을 하고, 시작(S)를 클릭 > 젠킨스가 시작되면 상태가 실행중으로 변경

  • 젠킨스는 기본적으로 localhost:8080에서 실행되며, 8080이외의 포트나 IP주소를 사용하려면 $JENKINS_HOME/jenkins.xml 편집해야한다. (<arguments> 태그의 --httpPort 부분을 수정)
  • 젠킨스 서버를 도커 컨테이너로 시작하려면 윈도우 명령 프롬프트에서 명령어를 실행한다. 도커 허브에서 제공하는 젠킨스 도커 이미지를 사용해서 젠킨스 서버가 실행된다.
/* 
-p 8080:8080은 포트 포워딩 설정
 도커 컨테이너의 8080 포트(:의 좌측)로 들어오는 요청이 도커에서 실행중인 젠킨스 서버의 
8080 포트(:의 우측)로 전달된다는 것을 의미
*/
docker run -p 8080:8080 -name=Jenkins-server jenkins/jenkins

💡 리눅스에서 젠킨스 서비스 시작

sudo systemctl start jenkins

💡 젠킨스 서비스의 상태 확인

sudo systemctl status jenkins

💡브라우저 실행 및 로그인하기 

브라우저를 실행하고 앞에서 설정한 젠킨스 서버의 IP와 포트 번호를 입력해야 한다.

초기 설정화면이 나타나면 사용자 이름과 비밀번호를 설정한 후, 로그인을 한다.

💡사용자 이름과 비밀번호 재설정 

실행 중인 젠킨스 서버를 중지하고 $(JENKINS_HOME)의 config.xml 파일을 편집한다.

<useSecurity>태그의 값을 true -> false로 변경하고 저장한다.

다시 젠킨스를 실행시켜 브라우저에 접속한 뒤 Manage Jenkins>Configure Global Security>Anyone Can Do Anything> Save를 클릭하고 People 페이지에서 재사용할 사용자를 선택한 뒤 사용자 이름인 pranodayd 클릭 

더보기

💡신규 사용자 추가 

Manage Jenkins>Configure Global Security> Security Realm > Jenkins own user database> Loggin-in users can do anything > Allow anonymous read access 항목을 해제> Save > Create First Admin User

💡젠킨스 플러그인 관리

  • 플러그인 : 기존 컴퓨터 프로그램에서 특정 기능을 추가하는 소프트웨어 구성 요소 

젠킨스에서 가장 많이 사용되는 플러그인 

  • Git :  깃 플러그인은 깃 버전 관리 시스템과 통합에 사용되며, 깃은 분산형 버전 관리시스템으로써 여러 개발자가 함께 소스 코드를 관리할 수 있는 기능을 제공한다.
  • Maven Integration : 메이븐 통합 플러그인은 메이븐 빌드 도구와 젠킨스를 통합하는 데 사용된다. 메이븐은 컴파일, 패키징, 테스트 등과 같은 핵심 빌드 단계를 자동화하는데 사용하는 빌드 도구다.
  • Email Extension Plugin : 젠킨스에서는 빌드 진행 상태를 관리자에게 알리는 이메일 알림을 구성할 수 있다. 이메일 확장 플러그인을 사용하면 알림 방식을 설정할 수 있고, 전송될 이메일 세부정보를 추가할 수 있다.
더보기

💊플러그인 설치 

1. 젠킨스에 로그인한다. 로그인하면 Dashboard 페이지가 나타난다.

2. 왼쪽의 Maven Jenkins 메뉴를 클릭해 이동한다.

3. Manage Plugins를 클릭한다.

💡플러그인 매니저 이해 

Plugin Manager 페이지에서는 다양한 젠킨스 플러그인을 설치하고 업데이트를 할 수 있다. 페이지는 Updates(업데이트 항목), Available plugins(설치 가능 플러그인), Installed plugins(설치 완료 플러그인), Advanced settings(고급설정)의 4개 메뉴로 구성된다. 

  • Updates : 이미 설치된 플러그인 중 업데이트 가능한 플러그인이 표시된다. 업데이트하고 싶은 플로그인 이름 앞에 체크박스를 선택한 후, Down now and install after restart버튼을 클릭해 업데이트 버전을 설치할 수 있다. 
  • Available plugins : 다운로드 및 설치할 수 있는 플러그인이 표시된다. 새로운 플러그인을 설치하려면 검색창에 플러그인 이름을 입력한 후 나타나는 목록에서 이름 앞에 체크박스를 선택한다. (install after restart 버튼을 클릭)
  • Installed plugins : 젠킨스에 설치된 모든 플러그인의 목록과 상세 버전 정보등이 표시되며, 플러그인을 제거할 수 도 있다. 
  • Advanced settings

'Study > 젠킨스로 배우는 CI,CD 파이프라인 구축' 카테고리의 다른 글

젠킨스로 배우는 CI/CD 파이프라인 구축 - 사용자 관리  (0) 2025.06.15
젠킨스로 배우는 CI/CD 파이프라인 구축 - 젠킨스 자격증명 관리  (0) 2025.05.25
젠킨스로 배우는 CI/CD 파이프라인 구축 - 젠킨스 보안관리 구성  (1) 2025.05.25
젠킨스로 배우는 CI/CD 파이프라인 구축 - 전역 도구 구성 이해  (0) 2025.05.24
젠킨스로 배우는 CI/CD 파이프라인 구축 - 젠킨스 설치  (1) 2025.05.12
'Study/젠킨스로 배우는 CI,CD 파이프라인 구축' 카테고리의 다른 글
  • 젠킨스로 배우는 CI/CD 파이프라인 구축 - 젠킨스 자격증명 관리
  • 젠킨스로 배우는 CI/CD 파이프라인 구축 - 젠킨스 보안관리 구성
  • 젠킨스로 배우는 CI/CD 파이프라인 구축 - 전역 도구 구성 이해
  • 젠킨스로 배우는 CI/CD 파이프라인 구축 - 젠킨스 설치
happy_dev
happy_dev
복사하고 붙여넣기 잘하고 싶어요
  • happy_dev
    happy의 개발일지
    happy_dev
  • 전체
    오늘
    어제
    • 전체 (43)
      • Java (0)
      • React (1)
      • DB (1)
      • Study (41)
        • 친절한 SQL 튜닝 (9)
        • 모던 리액트 Deep Dive (18)
        • 젠킨스로 배우는 CI,CD 파이프라인 구축 (14)
        • Studyd (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    조인
    리액트
    toad
    Jenkins
    인덱스의기본
    젠킨스
    SQL
    DB
    oracle
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
happy_dev
젠킨스로 배우는 CI/CD 파이프라인 구축 - 젠킨스 소개 및 구성
상단으로

티스토리툴바