티스토리 뷰

[DEV] 개발툴

Jenkins 설정에 대한 정리

쌍둥이 아빠 2013. 3. 13. 19:52

차기 프로젝트에서는 CI 툴을 사용하고자 Jenkins 사용법에 대해서 알아봤다.

빌드 방법은 maven을 이용해 war 생성 후 tomcat manager를 통해 war를 업로드 하는 식이다.


1. 

먼저 Jenkins를 설치한 후 웹 사이트에 접속한다.


2. 

시스템 설정

Jenkins 관리 > 시스템 설정 메뉴 접속 후 다음과 같이 JDK, Maven, 이메일, SVN 버전 설정을 한다.

이메일 서버는 gmail을 이용하였다.






3. 

새로운 Job을 클릭

Job 이름 입력 후 Build a maven2/3 project 라디오 버튼 클릭


4. 

소스 코드 관리 설정은 다음과 같이 한다.

나는 naver SVN 저장소를 이용했다. 사실 우리 회사 SVN 서버가 가끔씩 말썽을 일으키는 경우가 있는데 회사 프로젝트도 네이버의 SVN 서버를 이용하여 형상 관리를 하면 좋을 것 같다는 생각이 든다.




5.

빌드 트리거 설정

매일 매시 49분에 자동 빌드가 되도록 설정




6.

빌드 설정

maven Root POM 지정 후 Goals을 넣어준다.

clean 으로 target 디렉토리를 정리한 후 install을 이용하여 war를 생성한다.




7.

Post-build Actions 지정

톰켓의 webapps 디렉토리에 war를 배포하기 위한 설정이다. (Deploy Plugin을 설치해야 war를 tomcat으로 배포할 수 있다.)

여기서 manager 아이디와 패스워드는 TOMCAT_HOME/conf/tomcat-users.xml 파일에서 셋팅한다.

<role rolename="tomcat"/>

<role rolename="role1"/>

<role rolename="manager"/>

  

<user username="tomcat" password="tomcat" roles="tomcat"/>

<user username="both" password="tomcat" roles="tomcat,role1"/>

<user username="role1" password="tomcat" roles="role1"/>

<user username="lng1982" password="********" roles="manager"/>






기본적으로 위와 같이 설정하면 Jenkins를 이용하여 지속적인 통합을 할 수 있다.




Jenkins 프로젝트 job 히스토리 삭제 방법



1. ${JENKINS_HOME}/jobs/프로젝트명/builds 이동

2. 삭제하고자 하는 히스토리 디렉토리를 삭제

3. Jenkins 관리 메뉴에서 Reload Configuration from Disk 선택





SSH를 이용한 배포



위에서 설명한 tomcat manager를 통한 배포 방식 외에 SSH를 이용하여 배포하는 방법도 있다.

먼저 jenkins 플러그인 화면으로 이동 후 "Publish Over SSH"를 설치한다.


Job > 설정으로 이동 후 Post-build Actions에 다음과 같이 설정하면 끝

실제 war 파일을 SSH 프로토콜을 이용하여 서버에 업로드 하는 것이다.




FTP를 이용한 배포


FTP를 이용한 배포를 위해선 "Publish Over FTP" 플러그인을 설치 후 Jenkins 관리 페이지 > 시스템 설정 페이지로 이동한다.

Publish over FTP 에 다음과 같이 설정




적용하고자 하는 프로젝트의 Job > 설정 페이지 이동 후 업로드 하고자 하는 파일에 대한 정보를 입력하면 끝




Build now 클릭 시 확인창 띄우기



Jenkins 로그인 후 Build now 버튼을 클릭하게 되면 그 즉시 빌드가 진행된다.

개발자 테스트 장비에 배포하는 것은 별 문제가 되지 않지만 팀간 서로 공유하고 있는 장비에 배포할 때에는 확인 절차 후 빌드가 진행되는 것이 좋다.


방법은 간단하다.

Job > 구성 이동 후 다음과 같이 설정을 하면 "Build now" 버튼 클릭 시 다음의 화면이 노출된다.




그후 "빌드하기" 버튼을 눌러야 정상적으로 빌드가 진행된다.




Build History 삭제 방법



1. Slicing Plugin 설치

2. Jenkins 관리 메뉴 이동 > Configuration Slicing 클릭

3. Discard Old Builds Slicer - Max # of builds to keep <-- 선택

4. 아래와 같이 최근 20일 Build History만 유지하도록 설정

Item Names에 Job 이름을 선택적으로 지정하여 max of builds to keep Configured Value 값을 지정할 수 있다.


또 다른 방법으로는 다음과 같이 jenkins-cli.jar를 이용하여 삭제 가능

java -jar jenkins-cli.jar -s {URL} delete-builds {JOB_NAME} '{BUILD_NUMBER}-{BUILD_NUMBER}' --username {계정} --password {패스워드}


java -jar jenkins-cli.jar -s http://domain delete-builds ADMIN_JOB '1-10' --username aaaa --password 1111


jenkins-cli.jar 파일은 젠킨스 웹루트 하위의 WEB-INF 디렉토리에 존재한다.



TAG
댓글
  • 프로필사진 장용덕 ㅋㅋㅋㅋㅋ구글링했는데 댈님 블로그왔네옄ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 2013.10.28 09:49
  • 프로필사진 쌍둥이 아빠 ㅎㅎ 이제 jenkins 사용하는 건가? ^^ 2013.10.29 09:06 신고
  • 프로필사진 질문질문ㅠㅠ 안녕하세요...
    방화벽만 키면 뭔가가 잘 안되는데.. 매커니즘이 어떻게 되는지 몰라서요...
    혹시 publish over FTP 플러그인과
    FTP-Publisher 플러그인이 다른건가요??
    2013.11.20 16:24
  • 프로필사진 쌍둥이 아빠 두 개의 플러그인 모두 동일한 것으로 알고 있습니다.
    방화벽을 키면 잘 안 된다는 말에 의미를 곰곰히 생각해 보니 아무래도 FTP 프로토콜의 원리를 이해하셔야 할 것 같은데요.
    실제 FTP는 21번 포트만을 사용한다고 아실텐데 21번 포트는 command 명령어를 전송하는 포트로 사용되고 20번 포트에서 실제 데이터가 전송됩니다.
    또한, active mode 와 passive mode 두 가지 설정이 있으니 이 부분을 먼저 이해하셔야 방화벽 문제를 해결하실 수 있을 것으로 생각됩니다.
    도움이 되었으면 하네요 ^^
    2013.11.23 14:29 신고
댓글쓰기 폼