ercnam
6k
2020-12-03 10:09:51
5
163

서버에 jar 파일을 간단하게 관리할수 있는 툴이 있을까요


기존엔 2개 정도 웹 어플리케이션을 스프링부트 jar 파일을 빌드해서

해당 폴더에서 java -jar [jarfile] 하는 식으로 실행해서 서비스 하는 중입니다.

제가 제대로 하는진 모르겠는데 만약 해당 서비스를 코드를 수정해서 재배포 한다 치면

일일이 cmd 창에서 포트번호로 PID를 찾아서 kill 하고 다시 jar 파일 실행시키는... 수작업으로 하고 있는데


이번달에 조만조만한 마이크로서비스(...) 들이 좀 더 생길 예정이라

이런식으로는 한계에 부딪힐거 같아서요.

외장 톰캣처럼 war 파일을 던져주기만 하면 알아서 자동으로 적용시켜줬으면 좋겠는데..

그거까진 안바래도 최소한 뭔가 창 하나만으로 동작중인 jar 파일들을 원클릭으로 on,off 가 된다거나 했으면 좋겠습니다.

관련 툴 같은게 있을까요?

0
  • 답변 5

  • HJOW
    1k
    2020-12-03 10:14:43

    gradle 로 스크립트를 짜서 해결해야 할 것 같네요.

    파일만 던지면 자동으로는 안될거고, 그래들 스크립트를 실행하는 명령 정도는 한번 날려줘야 될겁니다.

  • 박종복
    667
    2020-12-03 10:25:06

    보통 MSA를 구성하면 Docker와 같이 Application을 Container Image로 만든후 Jenkins와 같은 CI/CD 도구를 통해서 Kubernates와 같은 Container Orchestration을 통해서 관리되게 구성하는데,

    현재 상황이 이런 환경을 구성하기 위해  시간이나 인력이 투자가능하지 않을 것 같이 보입니다.

    제가 보기에는 Jenkins나 Gitlab등으로 자동화 배포환경을 구성하고 자동화 배포툴에서 build, restart정도 구성하는 정도가 적당할듯 합니다.

  • ercnam
    6k
    2020-12-03 10:30:18

    박종복

    확실히 찾아보면 젠킨스 같은게 나오기는 하는데 그건 뭐 빌드서버, 배포서버 따로 있고 뭐 깃허브 코드에서 바로 빌드되고 복잡하게 있더라구요 (....)

    근데 그런거 안쓰고 걍 최소한만 가능한 옵션이 있다면 한번 찾아보고 싶군요. 감사합니다.

  • 유도지
    96
    2020-12-03 11:05:02

    jenkins를 이용하시는게 편할겁니다.
    shellscript를 짜서 
    1. 기존 jar 서비스 중지

    2. 신규 jar 서비스 등록(예: systemctl)

    3. 신규 jar 서비스 실행

    4. validation 체크

    이 구조로 템플릿 만들어놓으시면 편합니다.

  • beck1111
    761
    2020-12-03 12:29:52 작성 2020-12-03 12:30:38 수정됨

    질문자 내용을 고려하면

    도커 컨테이너화 되어있을 가능성은 희박해보이며

    젠킨스를 구축하는것도 허들이 있어보입니다.


    가장 원시적인 방법 서버에 쉘 스크립트 작성해놓고

    디플로이때마다 들어서가 실행한다.


    아님 좀더 노력할 여력이 된다

    CI로 검색하셔서 젠킨스,circle ci, github ci등등

    본인 상황에 맞는 CI환경을 구축한다.


    또는

    쉘스크립트 + ansible같은 선택도 있습니다.



  • 로그인을 하시면 답변을 등록할 수 있습니다.