💡CI ( Continuous Integration )
- 개발자를 위한 자동화 프로세스인 지속적인 통합
- 어플리케이션의 새로운 코드 변경 사항이 정기적으로 빌드/ 테스트 되어 공유 Repository에 (ex. git,github) 통합하는것을 의미한다.
- 다수의 개발자가 작업할 경우 레포지토리에 쌓이는 commit들이 충돌하는 것을 자동화된 빌드와 테스트로 방지할수 있다.
💡 CD ( Continuous Deployment ) : 지속적인 배포
- 수동적으로 배포하는것을 지속적인 제공이라 하는데, 이것을 자동화하는것
💡 젠킨스
- CI/DI 프로세스를 자동화하고 생산성을 높이는 데 많이 사용되는 자동화 서버
- 소프트웨어 개발 프로세스의 다양한 단계를 자동화하는 도구
- 중앙 소스 코드 레포지터리에서 최신 코드 가져오기, 소스 코드 컴파일, 단위 테스트 실행, 산출물을 다양한 유형으로 패키징, 산출물을 여러 종류의 환경으로 배포하기 등의 기능을 제공한다.
- 젠킨스는 아파치 톰캣처럼 서블릿 컨테이너 내부에서 실행되는 서버 시스템이다. 자바로 작성되었고, 소프트웨어 개발과 관련된 다양한 도구를 지원한다.
일반적인 젠킨스의 CI/CD 프로세스는 다음과 같다.
- 다수의 개발자가 각자의 브랜치에서 변경 작업을 한 후, 이를 중앙 리포지터로 푸시한다. 코드 리뷰가 끝나면 이를 다른 브랜치에 병합한다.
- 브랜치의 변경 사항이 젠킨스에 통보된다.
- 젠킨스가 통보를 수신하면 작업(job)을 시작한다.
젠킨스 작업이란, 빌드 릴리스 수명 주기의 여러 단계를 수행하기 위해 순차적 프로세스로 구현한 태스크 및 하위 태스크들을 말한다.
- 사용 중인 소스 코드 관리 시스템에 맞는 플러그인을 사용해 레포에서 변경된 파일을 가져온다.
- 메이븐 같은 빌드 도구와 관련 젠킨스 플러그인을 사용해 변경된 파일들을 컴파일한다.
- 빌드 도구를 재사용해 컴파일된 코드의 단위/통합 테스트를 실행한다.
- 정적 분석 도구를 실행해 코딩 표준을 준수하는지와 데드 코드가 있는지를 확인한다. 정적 분석 도구로는 소나큐브 등을 사용한다.
- 컴파일과 테스트까지 완료된 파일들을 .jar 또는 .war 같은 라이브러리 형태로 번들링한다. 젠킨스 플러그인으로 실행되는 빌드 도구를 사용한다.
- 빌드된 라이브러리 파일을 테스트/프로덕션 환경으로 배포한다.
- E-E 테스트 자동화 도구(ex. 셀레늄, 프로트랙터 같은 UI 자동화 도구)를 사용해 배포된 애플리케이션을 대상으로 테스트를 실행한다.
- 새로 생성된 애플리케이션의 상태와 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 |
