본문 바로가기
시행착오/Spring Boot

[Spring Boot] 5-2. Jenkins를 이용한 배포

by 성동원 2023. 10. 27.

이어서 진행..

 

추가적으로 말하자면.

밑에 포트번호도 있는데 포트번호가 다르다면 다르게 입력해서 접속하게끔 하면 된다.

 

그리고 나서 팀을 만든다.

 

 

 

 

item name에 아까 입력했던 팀이름을 작성해도 좋고 아무렇게나 작명하면 된다.

근데 아무래도 jenkins로 여러 프로젝트를 관리하고 그렇게 하려면 알수 있도록 구분지어 이름을 짓도록 하자.

나는 아까 Publish Over SSH에서 설정하였듯이 같은 이름을 작성했다.

 

해서 만들게되면 해당 프로젝트의 구성을 하는 설정페이지가 나온다.

 

 

내가 보고 있는 버전의 항목은 다음과 같다.

 

  • General
  • 소스 코드관리
  • 빌드 유발
  • 빌드 환경
  • Build Steps
  • 빌드 후 조치

 

General > GitHub project 클릭

 - 배포하려는 레파지토리 주소 입력. https로 입력했다.

 

소스 코드 관리

 - Git으로 변경

 - Repositories > Repository URL : 레파지토리 https로 입력.

 - Credentials : 자신의 github 계정을 넣도록 한다. 만약 없다면 밑에 add를 클릭해서 추가 하도록 하자.

 - Braches to build > Branch Specifier : 배포하려는 브랜치 지정 한다.   ( 나는 */main)  main 브랜치를 배포하기 때문.

 

빌드 후 조치

 

 

위 같이 항목들이 나오는데..

나는 다음과 같이 작성하고 정의를 했다.

 

Send build artifacts over SSH > SSH Publishers > SSH Server > Name : 팀이름 

바로 밑에 있는 고급을 눌러준다.

 

 

여기서 Verbose output in console 과 Credentials 를 클릭하고

Username엔 서비스 서버의 계정과 밑에 passphrase에 비밀번호를 작성했었나... 기억이 안나지만 비빌먼호를 작성 후 밑에 Test Configuration으로 접속 여부를 본다.

 

 

위 처럼 나오면 접속이 되는거임..

 

Transfers > Transfer Set > Source file: target/{빌드 파일명}.jar

Transfers > Transfer Set > Remove prefix: target

Transfers > Transfer Set > Remote directory: 서비스할 디렉토리

Transfers > Transfer Set > Exec command: 명령어 입력.

 

위 처럼 작성을 하게 된다.

 

maven 할때 기존 build를 지우고 새롭게 build를 하면서 target을 생성하는데, 그때 생성되는

jar 를 첫번째에 작성하고, remove 되는 target을 2번째로 작성을 하게 해줌.

웹서비스 하는 디렉토리 이름을 세번째에 작성해주고, 마지막으로 명령어를 입력 한다.

 

이렇게 Jenkins 설정이 마무리 됐다......

 

너무 할게 많다... 쉽게 하기 위해서 이렇게 설정할게 많다니....

 

 


사실은 위 글까지의 내용은 서비스 서버에 접속해서 shell script를 실행했을 때의 설정법이다.

사실은 jenkins에서 github 소스를 받고 압축을 한뒤 서비스 서버에 빌드된 압축파일을 보내고 압축을 풀고 빌드를 하고 배포를 하는 식으로 진행이 된다. 그 내용은

  • Build Steps

에서 진행이 된다. 나느 이 부분을 건너 띄고 서비스 서버에 따로 shell script를 작성해서 shell script를 실행 하도록 설정을 했다.

 

Jenkins에 대해서는 아직 모르는 것도 많고 익숙하지 않아서 또 이전에 여러방면으로 알아보면서 설정을 했던 거라. 완벽하게 다 숙지는 하고 있지 않다. 근데 지금까지 작성한 내용으로도 충분히 가능함을 느껴서 이 것만이라도 일단 작성을 해놓으려 한다.

 

Jenkins를 계속 사용하면서 제대로 Jenkins를 이용하도록 숙지 해야할 필요성이 있다.