Jenkins를 사용하여 Git 저장소에서 소스 코드를 가져오고 Maven으로 빌드한 뒤 Tomcat에 배포하는 파이프라인을 구축하는 방법입니다.
1. Git-Maven-Tomcat 파이프라인 설정
1) 파이프라인 프로젝트 생성
- Jenkins 대시보드에서 "새로운 아이템 추가"를 클릭합니다.
- 프로젝트 이름을 설정하고, "하위 Copy From"에서 이전에 생성한 프로젝트를 선택합니다.
- 기존 프로젝트의 pipeline 스크립트에 다음 내용을 추가합니다.
// Tomcat depoy state 추가된내용
stage('Tomcat Deploy') {
steps {
// Tomcat에 배포
deploy adapters: [tomcat9(credentialsId: 'deployer_admin', path: '', url: 'http://공인IP:port/')], contextPath: '/', war: '**/*.war'
}
}
2) 파이프라인 실행과 확인
- 프로젝트 설정이 완료되면 "지금 빌드"를 클릭하여 파이프라인을 실행합니다.
- 실행이 완료되면 브라우저를 통해 Tomcat에 배포된 웹 애플리케이션을 확인할 수 있습니다.
2. Git-Maven-Tomcat-SSH 파이프라인 설정
1) 환경 설정
- 미리 설정한 SSH 서버로 접속하여 Tomcat에서 배포된 war 파일을 삭제합니다.
ssh root@공인ip -p 8922 // 전에 생성한 my-was-ssh 컨테이너 내부 ssh server 접속 확인
// 전에 생성한 비밀번호 입력해서 접속
// my-was-ssh 컨테이너 Tomcat 확인 및 war 지우기
cd /usr/local/tomcat
ls ./webapps/ -al
rm ./webapps/*.war
- Jenkins SSH 플러그인(publish over ssh)을 설치하고, SSH 서버 설정을 확인합니다.
-> Dashboard / Jenkins 관리 / System
-> SSH Servers 섹션 설정 확인 : Name , HostName, username, Remote Directory,
고급 : password, port
-> 이전에 생성한 SSH 프로젝트의 구성에서 '빌드 후 조치' 부분 확인
-> SSH Server 섹션 : Name, Transfers 섹션 : Source files, Remove prefix
2) 새 프로젝트 생성 및 파이프라인 스크립트 설정
- Jenkins 대시보드에서 "새로운 아이템 추가"를 클릭합니다.
- 프로젝트 이름을 설정하고, "하위 Copy From"에서 이전에 생성한 프로젝트를 선택합니다.
(Git-Maven 파이프라인 프로젝트 선택)
- 기존 프로젝트의 pipeline 스크립트에 다음 내용을 추가합니다.
stage('Tomcat SSH Deploy') {
steps {
// Tomcat에 배포
sshPublisher(publishers: [sshPublisherDesc(configName: 'my-was-ssh', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '', remoteDirectorySDF: false, removePrefix: 'target', sourceFiles: 'target/*.war')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
}
}
위의 스크립트는 Git에서 소스 코드를 가져오고 Maven으로 빌드한 뒤, SSH를 사용하여 Tomcat에 배포합니다.
3) 파이프라인 실행과 확인
- 프로젝트 설정이 완료되면 "지금 빌드"를 클릭하여 파이프라인을 실행합니다.
- 실행이 완료되면 브라우저를 통해 Tomcat에 배포된 웹 애플리케이션을 확인할 수 있습니다.
이렇게 구성된 파이프라인은 Git 저장소의 변경 사항을 감지하고, 빌드 및 배포를 자동으로 수행하여 효율적인 개발 및 배포 프로세스를 구현합니다.
'study_IT > DevOps' 카테고리의 다른 글
Ncloud - Subnet 및 ACG 생성하기 (1) | 2023.11.24 |
---|---|
Ncloud - VPC 생성 및 NACL 설정하기 (0) | 2023.11.23 |
Jenkins Git-Maven 파이프라인 실습 (0) | 2023.10.20 |
Jenkins 파이프라인 사용하기 (0) | 2023.10.20 |
Jenkins -Git-Maven-Tomcat-SSH 서버를 활용한 WAR 배포 (0) | 2023.10.19 |