차기 프로젝트에서는 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 디렉토리에 존재한다.