상황 service 프로젝트가 web-common(공통, 자바프로젝트)를 의존하고 있다.
Jenkins로 빌드 후 실행을 하려면 web-common,service가 Jenkins 서버 안의
같은 디렉토리에 있는 상태로 빌드를 해 Jar 파일을 만들어야 하는 상황.
해결 순서 :
1. web-common 을 Jenkins로 깃랩에서 소스 변화가 생길 시 새로 받아 빌드하여 젠킨스 서버에 둔다.
2. web-common과 service 프로젝트를 연결한다.
3. web-common에서 변화가 생겨 새로 빌드가 될 시 service 프로젝트 또한 젠킨스에서 깃랩 저장소의 service를 새로 pull 해 빌드를 하게 한다.
- 1. web-common Jenkins Job 설정
- 깃랩 저장소 연결
- 빌드 과정
- 2. service 프로젝트 Jenkins Job 설정
- web-common이 빌드 되면 service project 빌드 되게 Trigger 설정.
해당 스케쥴링 크론은 매시 1분마다 소스 코드 확인하여 변경 사항 감지.
Gradle wrapper는 해당 workspace에 있는 것을 쓰고, 빌드시 clean, bootJar를 시행하게 함
빌드 후 SSH 통신으로 서버에 jar파일을 보낸다.
- EC2 설정
ec2에 들어가서 시스템 서비스를 만들어 준다
cd /etc/systemd/system
sudo nano 프로젝트명.service
우리가 젠킨스 잡 설정 시 Send files or execute commands over SSH에
Exec command로 'sudo systemctl restart 프로젝트명'(빌드 후 스프링 프로젝트 자동 실행 명령)을 해두면
바로 위 nano로 만든 .service가 실행된다.
잘 돌아가는 지 확인
자동으로 스프링 프로젝트가 잘 실행이 되었다.
'devOps' 카테고리의 다른 글
nginx letsencrypt 로 SSL 인증서 발급 후 사이트 https 적용하기 (0) | 2024.02.01 |
---|---|
docker 로 Spring boot 프로젝트 EC2에 배포하기 (맥북 빌드 시 에러 해결) (0) | 2024.01.10 |
Host key verification failed..(젠킨스 서버 이관 이후 빌드 반영 안될 때) (0) | 2023.08.28 |
(Ubuntu) AWS EC2 인스턴스 2개를 이용해 젠킨스 자동배포 (프리티어) (0) | 2023.08.10 |