DevOps

[CI/CD] Tomcat & Jenkins_1

cumo 2025. 4. 23. 11:39

 

Tomcat& Jenkins&Github를 통해 CI/CD 파이프라인 구성 

Maven으로 간단한 웹 애플리케이션을 만들고, GitHub에 연동한 뒤,
Jenkins와 Tomcat을 활용해 자동 배포 파이프라인(CI/CD)를 구성

 

✅웹 어플리캐이션 생성

maven 을 통해 간단한 웹 어플리케이션 구조를 생성 후 간단한 웹을 구성

mvn archetype:generate -DgroupId=com.4gl.app -DartifactId=4glapp -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

#웹 구조를 가진 공식 템플릿
maven-archetype-webapp
-> pom.xml #maven 설정 파일 (명세서) (프로젝트 의존성,플러그인) 명시

 

🔄 소스코드 git 연동

git init #디렉터리 기준 git 디렉터리로 구성
git add [파일명] 변경 사항 커밋 준비
git commit -m "first commit"
git config --global --edit #계정 등록
git branch -M master 
git branch -M master Git브랜치 이름을 master로 변경
git remote add origin [깃 주소]
git push -u origin master #권한 확인 후 저장소에 업로드

// 
추가 개발 시
git add .
git commit -m "0423commit"

🔐 주의: SSH 방식 사용 시, GitHub에 SSH 공개키 등록이 되어 있어야 한다.
(등록 위치: GitHub > Settings > SSH and GPG keys)

🔄 Jenkins와 Tomcat 연동 

개발자가 Git에 push →
Jenkins가 코드를 빌드하고 →
WAR 파일을 생성 →
Tomcat에 자동으로 배포
  • 현업에서 코드 변경 후 일련의 프로세스를 자주 반복하는데 Tomcat 서버를 사용하는 경우가 있다.
  • 이를 자동화 하기 위해 Jenkins를 통해 반복하는 프로세스 적용 가능

배포 경로

✅ Jenkins + Tomcat을 연동하면?

 

자동 배포 코드 푸시 후 Jenkins가 자동으로 빌드하고 Tomcat에 배포
반복성 보장 언제나 같은 방식으로 배포됨 (스크립트 기반)
시간 절약 수동 작업 제거, 테스트/배포 시간을 단축
무중단 배포도 가능 Manager API, 블루그린 전략 등 응용 가능

연동구조

 

 

✅Jenkins 구성

1. Jenkins Credentials 등록

Tomcat 서버에 접근할 계정 정보를 Jenkins > Credentials > Global 영역에 등록한다.

  • 유형: Username with password
  • ID 예시:tomcatdep

2. Item 생성 및 Git 설정

  1. Jenkins > New Item > Freestyle Project 생성
  2. Git Repository URL 입력
    예: git@github.com:AAA/cicdtest.git
  3. 브랜치: */master 또는 */main 지정

 

구성 : 

  • Git 주소 연동
  • 빌드 후 조치 설정 : **/*_war로 파일 경로를 선택
  • 컨테이너 설정 : tomcat9.x , 접속 경로 지정

**/*.war : 파일 경로 선택방식

 

Jenkins를 통해 git -> tomcat 빌드
Tomcat을 통해 웹 어플리케이션 구성

 

3. 자동화 설정

1단계: Jenkins에 GitHub Webhook 설정

 

"설정 > Build Triggers(빌드 유발)" 탭으로 이동

 

 2단계: GitHub에서 Webhook 연결

GitHub 레포지터 > Settings > Webhooks > Add webhook

 

Payload URL : http://젠킨스서버:8080/github-webhook/

COntent Type: application/json 

Secret: 비밀번호 필요시 지정

 

 


마무리

이렇게 Jenkins와 Tomcat을 연동하면,
Git → 빌드 → 배포까지의 반복 작업을 완전 자동화할 수 있다.

이 방식은 소규모 프로젝트부터 실무 운영 환경까지 유용하게 활용된다.
향후엔 ArgoCD, Docker, Kubernetes 등으로 확장도 가능하다.