공부/Ubuntu

웹서비스 자동배포 환경 만들기[Ubuntu,tomcat8,jenkins,maven,git]

JangGiraffe 2019. 9. 12. 02:17

안녕하세요 장지랩입니다.

엄청난 삽질 끝에 젠킨스 설정 및 자동배포에 성공했고, 그 과정을 공유해드리려고 합니다.

부디 여러분들은 저같은 삽질을 절대 하지 말길 바랍니다 (..ㅠㅠ)

 

젠킨스 프로젝트 만들기

1. 젠킨스를 서버에 설치한 후 웹페이지 로그인하고 들어가시면 좌측에 새로운 Item이란 메뉴가 있습니다.

젠킨스 new item을 누르면 새 젠킨스 프로젝트 생성 메뉴가 나옵니다.

저는 Maven Project를 자동빌드 및 배포할 예정이지만 Freestyle Project로 만들어줍시다.

추후 말씀드릴 거지만 젠킨스를 처음하시는 분들은 Project 이름을 절대 변경하지마세요 ..ㅠㅠ

 

프로젝트를 만들었으면 프로젝트로 들어가 '구성'메뉴를 눌러줍니다.

이제 빌드와 배포 설정을 해줄거에요.

 

젠킨스 자동빌드 및 자동배포 설정하기

구성에 들어왔다면, General , 소스 코드 관리, 빌드 유발, 빌드 환경, Build, 빌드 후 조치 메뉴가 있습니다.

General

General탭은 젠킨스 프로젝트에대한 일반적인 정보를 셋팅해주는 곳이에요.  -화이팅 -

1. 자동빌드(jenkins - git - maven)

소스코드관리는 형상관리를 말해요. 젠킨스에서 빌드할 소스를 git과 subversion 둘 중 어디에서 가져오냐를 지정해줄 수 있어요.

저는 깃이기 때문에 깃으로 설명해드릴게요, 저장소 URL과 브랜치를 적어주면 됩니다.

그 후 나머지는 쭉~ 패스해주시고

Build 메뉴로 넘어갑니다.

Maven Version은 mavn

Goals는 메이븐 빌드시 실행할 작업을 적어주세요, 명령어는 검색해주시고, 저는 maven clean과 maven install만 해줄거기 때문에 clean install을 적었습니다.

2.자동배포(jenkins - tomcat8)

젠킨스관리 - 플러그인설치 - Deploy to container Plugin 설치 후 진행하셔야 합니다.

war/ear files 란에는 war,ear파일의 이름 또는 *표로 이름을 지정해주세요.

Context Path는 배포할 서비스의 (젠킨스의)컨텍스트 패스를 지정해주는거고, 공란으로 두시면 젠킨스 기본 컨텍스트 패스가 적용됩니다.

Containers에는 Tomcat 8.x Remote를 선택한 후 

Tomcat URL은 톰켓 경로를 , Credentials에는 Tomcat 메니저에서 설정한 계정및 비밀번호를 적어줍니다.

*톰켓 매니저 설정 및 원격계정설정은 아래 포스팅을 참고해 주세요.

 

Ubuntu tomcat8 설치 및 젠킨스 자동배포를 위한 tomcat8 manager 셋팅

안녕하세요 ,장지랩입니다. 네이버 클라우드 플랫폼(유사AWS)를 통해 우분투에 웹서비스를 배포하려고 열심히 공부중인데요, 톰켓을 설치하고 자동배포 환경을 만들기 위한 젠킨스 셋팅에 필요한 톰켓 매니저를 셋..

janggiraffe.tistory.com

---------------------------------------------------------------------------이상입니다.

이제 Build Now를 누르면 저희가 설정한 빌드 및 배포가 될거에요.

Build History에서 내빌드 상황을 볼 수 있고, Console Output 메뉴를 클릭해 실시간 로그를 볼 수 있어요. 

빨간불은 빌드 실패, 파란불은 성공입니다.

저희 무수한 삽질의 기록이에요.

=================================================

실패로그입니다.

ERROR: Step ‘Deploy war/ear to a container’ aborted due to exception: 
java.lang.InterruptedException: [DeployPublisher][WARN] No wars found. Deploy aborted. %n
	at hudson.plugins.deploy.DeployPublisher.perform(DeployPublisher.java:107)
	at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:79)
	at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)
	at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:741)
	at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:690)
	at hudson.model.Build$BuildExecution.post2(Build.java:186)
	at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:635)
	at hudson.model.Run.execute(Run.java:1843)
	at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
	at hudson.model.ResourceController.execute(ResourceController.java:97)
	at hudson.model.Executor.run(Executor.java:429)
Finished: FAILURE

빌드는 성공했으나, 자동배포에서 실패했네요. 빌드한 war파일을 못찾겠다네요.

저의 경우는 젠킨스 프로젝트 이름을 바꾼것이 화근이었습니다. ~~~4에서 ~~~~로 이름을 바꿨는데, 빌드된 war파일은 ~~~~4폴더로 가고, 자동배포할 war파일은 ~~~~에서 찾더라고요, 그래서 젠킨스 프로젝트 이름을 ~~~~4로 다시 바꿔주었습니다.. 이런 젠장할;

이건 성공에 대한 로그에요 ^^;

배포 테스트입니다. 기본 스프링 프로젝트를 생성하면 나오는 home.jsp에 <p> deploy test ! </p> 소스를 넣어주고 깃 커밋 후 젠킨스 빌드나우를 하니 자동으로 배포되었습니다 !

 

이제 잠을 잘 수 있겠네요. 

그럼 여러분도 젠킨스 셋팅하시고 편안한 개발환경 만드시길 바랄게요 !

이상 젠킨스 초보자용 자동메이븐 빌드 및 젠킨스-톰켓 자동 배포 방법이었습니다.

 

제 글이 도움이 되셨다면 하트♥ 한번 눌러주세요.

감사합니다~

반응형