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 설정
- Jenkins > New Item > Freestyle Project 생성
- Git Repository URL 입력
예: git@github.com:AAA/cicdtest.git - 브랜치: */master 또는 */main 지정
구성 :
- Git 주소 연동
- 빌드 후 조치 설정 : **/*_war로 파일 경로를 선택
- 컨테이너 설정 : tomcat9.x , 접속 경로 지정
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 등으로 확장도 가능하다.