⚡ 개요
이전에 이미 Jenkins 구축의 경우 해보았고, 내용을 정리 했기 때문에 설정이 필요한 부분 및 배포 및 자동 실행 관련 내용만 정리 하도록 했다.
⚡ 배포 관련 가이드 내용 정리
일단 버전을 업데이트 했더니, 로그인 화면이 바뀌어서 올려봤다.
가장 먼저 해야되는 부분의 경우 SSH Server를 등록 해야한다.
SSH Server를 등록하기전에 이전 포스팅 내용을 참조해서 Spring Boot 서버를 구축 해놓은 상태여야 한다.
세부적인 내용에 대해서 설명 하고 넘어가도록 하겠다. 이 내용을 본다면 설정이 가능 하다.
Name : 등록하고 싶은 명칭 아무거나 상관이 없다.
Hostname : Spring Boot 서버의 url 정보를 입력하면 된다.
ex) 192.0.0.1
UserName : Spring Boot 서버의 ID 이다.
이전 포스팅을 참조 해보면 root로 로그인을 했기때문에, root로 해도되고 아니면 따로 id를 생성해서 사용해도 된다.
Remote Directory : 원격 디렉토리의 기본 경로를 설정하는것이다. 해당 경로의 경우 폴더가 없다고 생성해주지 않으니 미리 생성을 하고 사용해야한다.
고급을 누르는 경우 나오는 내용이다.
Password : Spring Boot 서버 패스워드 이다.
Key : SSH 키를 등록해서 사용하는 경우 key를 생성하고 등록해서 사용하면된다.
Port : 설정한 Port 기준으로 설정을 하면 된다.
모든 설정이 끝났다면 Test Configuration 을 통해서 SSH 연결이 정상적으로 되어있는지 체크 하면 된다.
설정이 정상적으로 됬다면 정상적으로 성공 문구를 볼수있다.
이후, 자동 빌드 및 배포에 대한 설정에 대한 내용이다.
내용이 많이 부족할수도 있지만 이미 내용을 정리 해놓은 부분이 존재해서 따로 정리를 하지는 않는다.
위에서 git 과 다른 설정을 했다고 생각을 하고 빌드까지 되었다고 가정을 하고 빌드 후 조치에 대해서 내용을 정리 하려고 한다.
Source file : 빌드된 war/jar 파일이 떨어지는 위치라고 보시면 된다.
ex) 예를 들어서 git에 올라간 소스가 test 라고 했을때, test 폴더내에 빌드된 파일이 떨어질텐데 test 폴더를 root 폴더라고 생각 하면 편하다. 추가적으로 잘 모르겠다면 jenkins 폴더 내부에 git에서 다운 받은 소스가 있고, 빌드가 되고 떨어진 파일 경로가 존재할것이다. 이부분을 확인 해보면 좋을거 같다.
Remove prefix : 위에 설정한 소스파일 위치에서 제거할 폴더를 설정하는 부분이다.
ex) test/testBackend/build/test.jar 해당 위치에 파일이 떨어진다고 했을때, test/testBackend/build/ 앞의 경로를 입력 하게 되면 이부분이 날라가고 소스 파일만 넘길수 있다.
Remote directory : spring boot 서버에서 소스를 카피할 디렉토리를 설정하는 부분이다.
Exec command : 이부분이 중요하다고 생각을 하는데 위의 과정을 거치고 커맨드 명령어를 날리는 부분이라고 보시면 된다. 예시로 저는 pwd와 특정 파일을 카피해서 특정 경로로 보내는 테스트를 했는데 서비스를 start 하거나 하는 특정 커맨드도 날릴수 있다.
여기까지 설정을 하는 부분에 대해서 정리를 해보았다.
⚡ 이슈 사항
Remote directory 설정시, 기본 경로의 시작이 Spring Boot 서버의 /root 밑에서 부터 시작을 한다. 만약 내가 생각한것처럼 파일이 카피되지 않는다면 /root 밑에 파일이 생겼을 가능성이 존재한다.
이슈는 아니지만 Exec command의 내용을 날렸을때 jenkins console 에서 내용이 보이지 않는다. 이부분을 설정하는 부분이다.
⚡생각
Jenkins 와 Spring Boot 서버를 연결 하면서 정상적으로 빌드까지는 됬지만, SSH 연결하고, 파일을 카피하고, 서비스를 구동하는데 많은 이슈 사항이 존재했지만 모두 정리하지는 못했다. (일부는 오류 내용만으로 파악이 가능 하다.)
구축을 시도 하면서 많은 에러를 만나고 생가지도 못한 변수를 마주치면서 얻는것이 많을거라고 생각한다.
'DevOps' 카테고리의 다른 글
VisualVM 기반 메모리 모니터링 구축 (0) | 2024.07.31 |
---|---|
[git] 태그와 릴리즈(Tag & Release) 관리 (0) | 2024.02.23 |
Docker + Centos + Spring Boot 구축 가이드 내용 정리 (0) | 2023.05.21 |
nssm으로 jar 파일 window service 등록 하기 (0) | 2023.05.15 |
사용중인 Intellij 플러그인 정리 (0) | 2023.03.12 |