학습목표
- 젠키스로 EC2에 배포하기
TIL
- 젠키스로 EC2에 배포하기
CI/CD로 나의 깃허브 프로젝트를 배포를 하려고 하였다.
젠킨스가 CI/CD에 사용된다고 해서 젠킨스 공부하고 그렇다고 다 알 수는 없어서
젠킨스를 직접 설치하면서 필요한 부분은 공부하면서 진행하려고 하였다.
우선 하나의 EC2에 톰캣깔고 나는 스프링 부트를 사용하엿기 때문에 이 경우 자바 17을 사용하여야 하였다.
JDK17을 설치하고 Mysql도 설치를 하였다.
리눅스를 이용하였지만 보통 나는 Ubuntu를 사용하였지만 이번에 Amazon Linux 2023이라는 리눅스가 있어서
이것을 이용하여 보았다.
약간 다른 리눅스(Ubuntu)랑 명령어가 다르고 추가적으로 몇가지 작업을 해야 할 떄가 있었다.
그것 빼고는 Amazon Linux 2023은 별 차이는 없었던 것 같았다.
Mysql을 설치까지는 하였는데 비번설정에서 어려움을 겪었다.
초기 랜덤비번으로 로그인은 하였지만
비밀번호를 내가 평소 쓰는 것으로 하고 싶었는데
비밀번호 policy 정도가 상으로 되어 잇어서 내가 원한느 것은 하로 해야 되었다.
비밀번호 policy을 하로 하면 될텐데 그것이 잘 되지 않았다.
이것 저것 안전모드로 설정해서 들어가는 데까지는 하였지만
변경이 되지를 않았다. 먼가 꼬이고 내가 잘 모르는 것이 있엇나 보다.
그래서 비밀번호를 내가 원하지 않는 어려운 것으로 우선 바꾸고
비밀번호 우선도를 하로 바꾸고 설정을 저장하는 방법을 택하였다.
내가 보안에 관해서는 잘은 모르지만
초기에는 비밀번호를 바꾸지 못하는데도 비밀번호 정책을 변경하려면 비밀번호를 먼저 바꿔야 했다.
그래서 둘다 바꾸지 못하는 경우였다.
초기화도 안전모드로 들어가야 하는데 마찬가지였다.
내 생각에는 대개의 경우 그래도 기본이 있으신 분이라면 비밀번호를 무조건 한번이나 변경하게 하고 그다음에
시작하는 것이 좋지 않을까 하는 생각이 있다.
내같은 경우 안전모드로 들어가도 해결이 안되서 그냥 비밀번호 복잡하게 한번 따로 설정 후 다시 policy를 바꾸고
원하는 비밀번호로 설정해야 하는 과정을 어차피 거처야 했다.
다른 EC2를 설치를 하고 그곳에 젠킨스를 설치를 하고 다른 외부 EC2에서 내가 원하는 프로젝트를 돌리려는 ec2로 원격으로 배포를 하려고 했다.
젠킨스를 설치를 하고 알아보니 톰캣 Remote를 이용해서 하는 것이라고 하였다.
깃허브와 젠킨스를 연동을 하고 이것 저것 인터넷에서 하라는 대로 따라 하였다.
깃허브에서 키를 생성해서 입력하고 훅을 발생해서 훅이 푸시로 들어오면 배포되도록 하였고
좀 헤매였던 것이 있는데 나는 멀티리포여서 깃허브의 하위디렉토리 중 하나를 선택하여야 했다.
알고보니 옵션에 있었다.
메이븐이 clean package가 되는데 테스트에서 걸렸다.
그래서 테스트는 지금은 중요하지 않다고 보고 나는 어느정도 동작 되는 것을 올리고
테스트는 따로 작성하지 않았기도 해서 테스트는 생략하도록 하였다.
톰캣 Remote를 이용해서 war파일이 전송되었지만
war파일은 내장 톰캣이라 동작이 안될 것으로보고 외장 톰캣으로 돌릴려고 하였다.
war파일이 배포되고 폴더가 생성이 되었는데
wa파일은 기존 내장 톰캣용으로 설정되어 있어서
외장톰캣으로 설정을 변경하였다.
그런데도 잘 안되서 2일정도 헤매고 삽질을 하다가
멘토님께 여쭤보니
webapps폴더에 다른 폴더가 있어서
그것들이랑 충돌이 일어나는 것으로 보인다고 하셨다.
톰캣의 web.xml파일의 컨테스트 부분을 수정하여서
경로를 수정하여 디렉토리 방식으로 html파일이 열리는 것이 보였다.
더 확인하고 싶은 마음도 있엇찌만 나는 이미 많은 시간과 노력을 보냈기 때문에
더이상의 노력은 하고 싶지 않았다.
멘토님꼐서도 여기까지 하고 내장톰캣으로 돌리는 방식으로 구현하라고 하셨다.
이제 나의 프로젝트를 시작하려고 한다.
그나저나 톰캣설정과 스프링 부트 설정을 계속 바꾸고 메이븐 war파일 생성을 그렇게 하여도
문제점을 알 수 없었는데 이런 예외적이라고 생각 할 수도 있는 부분에서 문제가 발생이 되어서
난감했다. 역시 멘토님이시다.
'[F-Lab 66해빗 페이백 챌린지 ]' 카테고리의 다른 글
| [F-Lab 모각코 페이백 40일차] (CS) CHAPTER 3 컴퓨터 구조 (0) | 2023.08.02 |
|---|---|
| [F-Lab 모각코 페이백 39일차] (코테) 프로그래머스 과일 장수 (Java) (0) | 2023.07.29 |
| [F-Lab 모각코 페이백 37일차] (CS) CHAPTER 4 운영체제 (0) | 2023.07.28 |
| [F-Lab 모각코 페이백 36일차] Spring Security 로그인 구현 (0) | 2023.07.20 |
| [F-Lab 모각코 페이백 35일차] (CS) CHAPTER 2 데이터 표현과 디지털 논리 (0) | 2023.07.20 |