티스토리 뷰
지금은 거의 사용되지 않는(아직도 많이 사용할수도 있겠지만..) Jenkins + Ant + SVN + Windows서버 조합으로 자동배포하는 포스팅을 하려고 한다. Hudson이 껴있었으면 딱 again 2010년쯤 유행했던 기술셋인거 같다. 이 글을 쓰는 이유는 이제 거의 사용되지 않고 있어 기억에서 흐려지고 있어서 나중에 혹시라도 다시 써먹을수도 있기에 기록을 남겨둔다. 오래된 기술셋이지만 요즘에 많이 쓰이는 Maven + Git + Linux 서버를 사용한다 하더라도 메카니즘은 동일하니 이 과정을 알아두면 분명 도움이 된다.
1. Ant Build Script 작성
가장 먼저 해야 할일은 Ant Build Script를 짜는 것이다. 아래 링크를 참조해서 작성을 해보자.
build script는 src와 lib으로 빌드하여 classes 파일을 만들어내는것이 목적이다.
2. SVN으로부터 소스 가져오기 (pull-source job)
Jenkins에서 가장 먼저 해야 할 일은 자동배포를 할 어플리케이션의 소스를 SVN으로부터 가지고 와야 한다.
위와 같이 사용자 빌드 경로 사용이라는 것을 사용하면 SVN의 소스를 사용자 빌드 경로 사용에 지정해 놓은 위치로 가지고 온다. 즉 ~workspace\build 라는 디렉토리에 SVN으로부터 가지고 온 소스를 넣겠다는것이다.
pull-source라고 만들어 놓은 Jenkins job을 돌려서 실제로 ~workspace\build 안에 소스가 잘 들어가는지 확인한다.
3. Source 빌드 (build-source job)
~workspace\build 안에 있는 소스를 작성한 Ant Build Script로 빌드하는 과정이다.
마찬가지로 ~workspace\build 를 기본 경로로 잡는다. 작성한 Ant Build Scirpt(build.xml) 이 위치한 경로까지 기본 경로로 잡아줘야 한다.
빌드를 하기 전에 빌드의 결과물이 위치할 경로에 있는 내용들을 지우고 빌드를 한다. 기존의 경로에 계속 덮어씌우면 오류가 날 수 있어서 이렇게 하는것이 안전하다. 단 del 명령은 정말정말 신중하게 써야한다.
4. 빌드한 소스 서버에 배포 (deploy-source job)
다음 단계는 빌드한 소스를 서버에 배포를 하는것이다.
build script에서 빌드한 결과물은 ~workspace\deploy 에 떨어지게 해놨다. 그래서 deploy-source job에서는 이곳이 기본 경로이다. 이곳에 있는 소스를 배포할곳으로 복사해주면 된다.
배포하려는 곳이 Jenkins가 설치된 곳과 동일한 경우에는 위와 같이 xcopy를 이용해서 배포를 하였다. 나중에 안 사실이지만 xcopy 보다는 이런 경우에는 robocopy의 미러링을 사용하면 훨씬 좋다.
배포를 다 하고 나서는 각종 설정파일을 현재 phase에 맞게 변경해주는 작업까지 진행하였다.
배포하려는곳이 다른 서버라면 ssh나 ftp를 이용해서 배포하도록 한다. 이글을 참조하도록 하자.
5. 서버 재시작
배포가 모두 끝났으면 서버를 재시작을 해주는 과정이 필요하다. 서버에서 직접 재시작을 해도 되지만 이렇게 배포과정에 재시작까지 자동으로 해주면서 자동배포를 마무리를 짓는다. WAS가 tomcat인 경우는 아래와 같이 재시작을 하면 된다.
한 10년간은 참 유용하게 잘 사용했던 기술셋들이다. 영원한건 없는것 같다.
끝!
'CI,CD > Jenkins' 카테고리의 다른 글
Jenkins Credentials looks fine but the repository url is invalid 오류 조치 (0) | 2021.04.20 |
---|---|
Jenkins (Hudson) 재밌는 기능 (0) | 2021.03.19 |
Jenkins 권한관리 KeyCloak 연동해서 하기 (2) : openid-connect (0) | 2021.01.11 |
Jenkins 문제 생겼을때 설정파일 직접 수정하기 (설치파일 경로 포함) (0) | 2021.01.08 |
Jenkins Window 10에 설치하기 (0) | 2021.01.08 |