자동 컴파일 및 배포하는 툴 Jenkins

Posted by 로젠크로와싱 Web/Web Tools : 2013. 2. 7. 13:30


Jenkins : 젠킨스

많이 접해 보지 못한 이름입니다. 허드슨(Hudson)과 비슷한 자동배포 웹 애플리케이션입니다. 허드슨 개발자들이 나와서 제작한 툴로서, 허드슨 보다 버전이 낮지만 강력한 기능을 자랑합니다. 허드슨은 많이들 사용하고 있고 지금은 3.0.0 버전대로 올라가 있습니다. 하지만 버전이 너무 높다 보니 플러그인과의 호환성이 다소 떨어지고 있으며, 필자가 허드슨을 사용하기 위해 세팅을 해 보았지만 CVS에서 파일은 들고오되 후속처리인 Ant에서 에러가 발생하여 부득이하게 Jenkins으로 갈아탔었지만, 허드슨보다 호환성이 좋고, 후속처리인 Ant부분에서도 완벽하게 동작합니다. 

1. 설치방법

젠킨스는 현재 1.500 버전이 최신버전이며, 다운 받는 곳은 공식 홈페이지인 젠킨스(https://jenkins-ci.org)에서 받을 수 있습니다.

.war 파일로 되어 있는 젠킨스와 여러 플랫폼에서 설치할 수 있는 패키지 형태로 되어 있는 젠킨스가 있습니다. 이 글에서는 war 파일이 아닌 windows 설치 패키지로 받아 사용하겠습니다. 

jenkins-1.500.zip 파일을 압축 푸시면, setup.exejenkins-1.500.msi 두 가지의 실행 파일이 있는데 익숙한 setup.exe를 더블클릭하여 next 버튼을 차례차례 눌려서 설치를 완료합니다. 


2. 젠킨스 웹 애플리케이션에 접속

젠킨스를 설치하셨다면 해당 웹에 접속을 해야되는데, war 같은 경우에는 was에서 설정한 도메인과 포트로 접속을 하지만 설치파일로 하셨다면 어떻게 접속을 해야할까요? 설정하는 부분도 없었잖아요?

젠킨스 설치파일은 로컬아이피(127.0.0.1 or localhost)와 포트(8080)을 사용하여 접속이 가능합니다. 만약 다른 PC에 설치하였고 같은 네트워크에 속해 있다면 해당 IP주소를 입력하여 접속합니다.


3. 젠킨스 설정 및 플러그인 설치

설치파일 또는 war로 설치하게 되면 젠킨스에서 추천하는 플러그인이 모두 설치가 되어지는데, 여기서 그냥 써도 상관은 없지만 가끔 낮은 버전으로 인해 CVS에서 파일을 들고 오지 못한다거나 그런 현상이 가끔 있습니다. 또한, 해당 플러그인에 의존성이 있는 플러그인은 높은 버전으로 인해 동작이 되지 않을 가능성도 있으니 주의하시고 업데이트 또는 설치를 완료하십시오.

Jekins 관리를 클릭하여 관리 페이지로 이동합니다.

젠킨스 관리에는 크게 시스템 관리, 보안 설정, 플러그인 관리가 있으며, 각각 서비스에 도움이 되는 관리화면이 준비되어 있습니다. 

시스템 설정을 하기 전에 플러그인을 업데이트 또는 설치를 하는 것을 추천드립니다. 플러그인 버전에 따라 설정화면이 달라지므로, 두번 설정하는 것보다 한번에 설정하는 것이 여러모로 편하겠죠?

업데이트가 있다면 업데이트 목록이 출력됩니다. 1.500버전을 설치하게 되면 4가지 정도 업데이트가 이루어집니다. 

CVS를 비롯한 배포에 필요한 플러그인을 설치할 수 있습니다. Filter 기능이 있지만, 컨트롤 F로 직접 찾아서 하는 것이 편하겠습니다. 

상기 화면은 현재 설치된 플러그인 목록을 나타냅니다. 만약 사용하지 않는다면 체크를 해제하시면 되고, 지우고 싶다면 Uninstall, 고급 탭에서 직접 플러그인을 업로드하여 설치하고 최신 버전으로 업데이트 하였다면 다운그레이드가 가능해집니다. 

고급 탭은 네트워크가 불안정할 때 등, 우회를 하여 접속을 해야할 경우에 설정하는 부분이고, 플러그인 올리기에서는 사용자가 직접 플러그인 파일을 올려 설치가 가능합니다. 이때에는 버전에 상관없이 올릴 수 있으나, 의존도에 따라 정확하게 동작이 구동되지 않을 가능성이 있습니다. 


4. 자동배치 작업 생성

자동으로 컴파일하여 배포를 하기 위해 젠킨스에 새 작업을 등록해야합니다. 작업 등록은 여러개가 가능하고, 한 작업으로 배포를 하여도 되고, 여러 작업에 걸쳐 배포를 하여도 됩니다. 특정 작업이 성공하면 빌드를 하도록 설정할 수도 있습니다. 

왼쪽의 메뉴에서 새 작업(New Job)을 클릭하면 프로젝트 이름과 그 프로젝트의 타입을 선택하는 화면이 나타납니다. 프리스타일, 멀티 설정, 외부 장비 모니터링, 기존 프로젝트 복사가 있지만 우리에게 필요한건 프리스타일입니다. 자유롭게 새 작업을 설정하도록 합니다. 

프로젝트 이름은 앞서 입력한 이름으로 나타나며, 이 프로젝트가 무엇을 의미하고 있는지 간단한 설명을 포함하여 여러 설정을 할 수 있습니다. 

(※ 상기 설정화면은 CVS를 기준으로 설명하고 있으며, 버전은 2.7버전이고, Ant도 앞서 시스템 설정에서 설정하였다는 가정으로 설명합니다.) 소스코드 관리는 CVS, SVN, 등등 많이 있고(플러그인을 설치해야 리스트가 나옵니다.) 여기서는 CVS를 선택하여 상세 설정을 보이게 해서 cvsroot를 설정하고 어떤 모듈을 불러서 자동 배치를 할 지 설정합니다. 구 버전대의 CVS 플러그인을 설치하고 있다면, 패스워드를 직접 cvsroot에 삽입 또는 .cvspass 라는 접속정보에 암호가 있어야 됩니다. (:pserver:user_id:passwd@host_name:Module)

Use Update에 체크를 하면, 새로운 파일이 있을 경우에 받아서 배포를 하게 됩니다. 다음으론 빌드 트리거를 설정하게 되는데, 다른 프로젝트가 빌드된 후 빌드를 하면 현재 프로젝트가 빌드되기 전에 꼭 의존성이 필요한 빌드가 있을 경우에 지정하시면 되고, build periodically는 빌드 주기를 설정하는 입력 박드가 생성되고 여기에 cron 문법을 넣으시면 됩니다. Poll SCM은 build periodically와 비슷한 cron으로 이루어 져있는데, 한가지 다른 점이라면 build periodically는 특정 주기마다 매번 동작하는 것이고, Poll SCM은 주기를 돌지만 SCM에 변경이 이루어졌다면 동작하는 것입니다. 써본지가 얼마 되지 않아서 거기서 거기같은 트리거 인것 같네요 ㅎㅎ, 저 같은 경우에는 자동 빌드같은 경우에는 Poll SCM을 사용하고 FTP 전송으로 build periodically를 씁니다. (cron 문법 */30 * * * *  : 매일 30분 단위로 실행)

Build부분에는 Ant, Shell, Windows Command, 등 빌드 후속 처리를 위한 설정을 할 수 있습니다. 시스템 설정에서 설치한 Ant를 사용하기 위해 Invoke Ant를 선택하고 Ant version, target, option을 설정하여 처리합니다. 

저장 또는 apply로 설정을 완료하고, Build Now를 하여 빌드를 합니다. 


'Web > Web Tools' 카테고리의 다른 글

cvsnt-2.5.03 (build 2382) 설치 및 환경설정  (0) 2013.04.12
Jenkins 보안 설정 뒤, 리셋 하는 법  (0) 2013.03.18