[Deployment_Tool] 11.Jenkins Deploy : Remote Server


Deploy to Remote Server



이번 장에서는 jenkins서버에 있는 jenkins 에서 소스를 빌드 및 정적분석을 하면 .war 파일을 was 서버에 있는 tomcat으로 넘겨 배포를 해보겠습니다!


image




먼저, jenkins 와 tomcat을 원격으로 연결하기 위해 jenkins 서버의 jenkins 계정에서 SSH키를 생성해줍니다!


image



image




그리고 생성된 SSH public key를 복사해둡니다!


image




그리고 ssh 키의 권한을 바꿔줍니다!


image



이제 was 서버의 tomcat 계정으로 이동!


여기도 SSH 키를 생성해줍니다!


image



image




그 다음 .ssh/authorized_keys를 생성하여 아까 jenkins 계정의 ssh pubilc key를 붙여넣습니다!


image



image




그리고 접근 권한도 바꿔줍니다!


image




이제 jenkins 서버와 was 서버를 연결하기 위한 리눅스 환경에서 기본셋팅은 끝났구요!


jenkins를 실행해줍니다!

그리고 Publish Over SSH 플러그인을 다운 받아줍니다!


image




그리고 jenkins 관리 - 시스템설정에서 다음과 같이 jenkins SSH 키 path와 tomcat에 대한 정보를 입력해줍니다!

Test Configuration을 눌렀을 때 Success 가 나와야합니다!


image




그 다음 배포를 위해 새로운 job을 만들어 줍니다!


image



image




위에서 Exec command 에 입력한 /usr/local/tomcat/build.sh 는 빌드 스크립트의 위치를 지정해준것입니다.

즉, 방금 생성한 job이 실행되면 build.sh를 실행하라는 것이죠!

아직 build.sh는 만들지 않았습니다!

다시 was 서버에 접속해보죠!

build script를 작성해주는 이유를 먼저 말씀드리겠습니다!

build.sh를 작성하지 않고 배포를 하면 저희 소스는 다음과 같이 swp-1.0.0-BUILD-SNAPSHOT.war로 tomcat/webapp 에 저장됩니다!


image



하지만, 저의 스프링프로젝트의 경로는 ‘/’ 루트경로이기에 ROOT.war로 저장되어야합니다!

전에 있던 ROOT.war 도 백업해 놔야하구요!

그 작업을 한번에 처리하기위해 빌드스크립트를 작성합니다!


먼저, 톰캣을 재시작해주는 restart.sh 부터 작성하겠습니다!


image



image




실행권한도 바꾸어줍니다!


image




그 다음 build.sh 작성!


image



image




실행권한 또한 바꿔주죠!


image




그 다음 아까 jenkins 에서 생성한 Deploy SWP for Remote Tomcat jab을 build now 해줍니다!


image




빌드 성공!!!


한 번 http:// was서버아이피 로들어가 볼까요?(Apache의 포트번호는 80인데 생략가능)


image




와우! 제대로 배포가 되었습니다!!


rollback.sh 만들기



피치못할 사정으로 배포전 환경으로 돌려야하는 경우가 있습니다!

이 때 build.sh 에서 만들어 둔 백업파일 ROOT.war.back 을 이용하면 배포 전 환경으로 돌릴 수 있습니다!

롤백을 할 수 있는 rollback.sh 를 만들어보죠!


image



image



image




제대로 실행되나 보겠습니다! 일단 rollback 하기 전 /usr/local/tomcat/webapps 입니다!


image




이제 rollback.sh를 시작해보죠!


image




배포 전 환경으로 돌리기 성공입니다!