반응형

Continuous Integration 서버!! Jenkins를 설치해 보자!

 

하하... 회사가 미쿡이다 보니.. 안되는 영어로 어쩔 수 없이 메뉴얼을... 흑흑... 한쿡사람은 보지 말고 이거 보자!! 

 

Jenkins는 Continuous Integration를 Open-Source로 지원하고 있는 대표적인 CI Server이다. Java로 구축되었으며 약 1000개의 상의 플러그인들을 제공해 프로그래머들의 편의를 제공하고 있다.

 

여기서 잠깐 왜!!!! 우리는 CI를 서버를 사용해야 하는가? 솔직히... 한 두명이서 프로그램을 개발부터 배포 관리를 한다면 구지 CI서버를 설치할 필요는 없다. 왜? 혼자 하니까 자기 컴퓨터가 곧 테스트 서버이기 때문이다. 하지만, 그렇다 하더라도 실제 서버에 배포를 하는 작업은 언제나 까다롭다. 또한 팀별로 프로젝트를 한다면 통합 및 배포가 그만큼 더 어려워진다. 그!런!데! CI 서버 이놈이 우리를 대신해 테스트도 해주고, 리포트도 올려주고, 통합 빌드 및 배포까지 해준다니.... 구지 안쓰겠다고 마다할 필요가 없다.

그래서 이 포스트에서는 이놈을 어떻게 설치하고 셋업을 하는지 알아보도록 하자! 

 

 

 

우리의 목표는 위의 작업을 한!방!에! 자동으로 해주는 CI서버를 구축하는 것이다.

 

설치

솔직히 설치는 이렇게 설명하기 민망할 정도로 쉽다.

 

윈도우

http://Jenkins-ci.org 에 방문하여 자신에게 맞는 버전을 다운 받고, 보통의 프로그램 설치하듯 진행을 하면 설치는 완료 된다. Jekins를 설치하고 나면 로컬호스트(127.0.0.1:8080)의 기본포트는 8080으로 호스팅이 된다. 기본포트 8080을 바꾸고 싶다면 jenkins를 설치한 폴더(보통은 C:\Program Files (x86)\Jenkins)안에 Jenkins.xml을 열어

<arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=8080</arguments>

위의 빨간 부분을 원하는 포트로 바꾸면 된다.

설치를 다했다면 로컬호스트:변경한포트 (http://127.0.0.1:8086)로 접속해 보자. 

 

리눅스

아래와 같이 Jenkins를 다운 받고

wget -P /yourDesireDirectory http://mirrors.jenkis-ci.org/war-stable/latest/jenkis.war

아래와 같이 인스톨을 하자!

java -jar /DownloadedDirectory/Jenkins.war

마찬가지로 8080을 사용하고 있다면  "/etc/systemconfig/Jenkins"를 열어 아래부분을 원하는 포트로 변경하자.


## Type:        integer(0:65535)
## Default:     8080
## ServiceRestart: jenkins
#
# Port Jenkins is listening on.
# Set to -1 to disable
#
JENKINS_PORT="8086"

 

설치를 다했다면 마찬가지로 자신의 젠킨스에 접속해보자. ( http://127.0.0.1:8086 )
 

기본 설정

 

자 설치한 젠킨스에 접속을 해보니, 모든 권한을 가지고 있다. 물론 내부적으로 몇명만 사용하는 경우라면 상관이 없겠지만, 만약 모르는 누군가가 들어와서 어렵게 만들어 놓은 작업들이 망쳐 놓은다면 큰 낭패를 볼 것이다. 그래서 일단 손님들로 부터 사용권한을 빼앗도록 하자.

 

젠킨스 왼쪽 메뉴의 "Manage Jenkins" 클릭하고, 가운데 "Configure Global Securiy" 페이지로 들어가자!

 

 

위의 그림은 이미 설정을 바꿔 놓은 화면이지만, 실제로는 "Anyone can do anything"이라는 무시무시한 설정으로 되어 있다. 여기서 잠깐 선택 내용들을 살펴보도록 하자. 

 

Security Realm은 어떤 데이터 베이스를 사용자 데이터 베이스로 사용할 지 선택하는 부분이다.

   Delegate to servlet container. 사용자를 git, sebversion, whoAmI 혹은 다른 곳에서 가져와 사용하고 싶을때 선택한다. 

   Github Authentication Plugin. 사용자를 GitHub에서 인증 받아 사용할 때 선택 한다 (플러그인을 설치해야 사용가능)

   Jenkins' own user database 사용자를 젠킨스에서 직접 만들어 사용할 때 선택한다. (본 포스트에서는 이것을 사용)

   LDAP 윈도우 서버의 엑티브 디렉토리에서 설정한 사용자를 가져와 사용할 때 선택한다.

 

인증 부분은 그냥 읽어도 알 수 있는 내용들이기 때문에 설명은 생략하도록 하겠다.

 

이제 빨리 손님에게서 권한을 빼앗고, 로그인한 유저들에게도 필요한 권한만 주도록 만들어보자.

 

위에서 설명한 것 같이 "Jenkins' own user databse"를 선택하고 "Logged-in users can do anything"을 선택하자. 왜냐하면 현재 본인도 등록이 되어있지 않기 때문에 다른 것을 선택하면 자신도 접속을 못해 젠킨스를 다시 깔아야하는 불상사를 초래할 수 도 있기 때문이다. Save를 누르면 이제 본인에게도 (손님) 권한이 사라진 것을 확인할 수 있다. 그럼 "sign up"을 눌러 사용자를 만든다. 사용자를 만들면 다시 모든 권한이 부여된 것을 볼 수 있다. 그럼 이제 로그인 한 사용자들에게 알맞는 권한을 부여하고 자신에게는 모든 권한을 갖는 어드민 권한으로 만들어보자.

 

아까와 마찬가지로 "Manage Jenkins"안에 "Configure Global Security"에 들어가서 Authorization에서 "Matrix-based security"를 선택하자.(위의 그림 참조) User/group to add 텍스트박스에 본인의 아이디를 넣고 "Add"를 클릭한다. 여기서

잠깐!!!!! 절대 엔터키를 누르지 말자!! 습관적으로 우리는 입력후 엔터를 치는데, 본 페이지에서 엔터를 누르면 젠킨스는 페이지 세이브를 실행시키고, 아무 권한도 없는 본인은 앞으로 젠킨스 설정에 들어갈 수 없다... 그리고 젠킨스를 다시 설치해야하는 상황이 벌어진다. 본인을 넣었으면 위의 그림과 같이 자신에게는 모든 권한을 부여하고..(오른쪽 엑스표 옆에 아이콘이 전체선택/해제 아이콘) Anonymous(손님)에게는 읽기 권한만 주자. 그리고 세이브를 하면 이제 본인은 어드민 계정이 되고 다른 사용자들에게 필요한 권한을 줄 수 있다.

 

가장 처음에 언급한 것과 같이 젠킨스는 약 1000정도의 플러그인을 제공하고 있다. 그래서 다 설치할 수는 없고 자신에게 필요한 플러그인들을 선택해서 설치해야 한다. 플러그인들을 살펴보면 크게 빌드관련, 테스트 관련, 그리고 리포트 관련 플러그인들로 나눌 수 있다. 나도 많은 플러그인 들을 설치해보지는 않았으나, 유용한 플러그인들 몇가지를 적도록 하겠다.

 

Ant Plugin (Apache Ant Builder)

Git Client Plugin, GIT plugin (Integrates Git)

GitHub API Plugin, Github Authentication Plugin, GitHub plugin, GitHub pull request builder plugin (Using Github)

Marven Project Plugin

MSBuild Plugin

MSTestRunner plugin

NAnt Plugin

NUnit plugin

Post-Build Script Plug-in

Team Foundation Server Plug-in

 

그외 중복 코드를 체크하는 Duplicate Code Scanner Plug-in 코드 복잡도를 체크하는 NSIQ Collector plugin등은 매우 유용하게 사용된다. 이외에도 시간이 있다면 플러그인들을 살펴보고 자신에게 알맞는 플러그인들을 설치해보는 것도 좋다.

 

플러그인 설치는 "Manage Jenkins"안에 "Plugin Manager"에서 찾고 설치할 수 있다.

 

 

 

그럼 마지막으로 젠킨스 설정에 대해서 알아보도록 하자. Manage Jenkins 안에 Configure System을 누르면 아래 그림과 같은 페이지가 나타난다.

 

 

젠킨스 설정은 조금만 보면 알겠지만, 사실 사용할 프로그램의 위치를 맵핑해주는 것이 다다. 그런데 그말을 바꿔 말한다면 필요한 프로그램이 젠킨스 서버에 설치가 되어 있어야 한다는 말이다.(뭐 빌드를 하려면 당연한 이야기이지만..) 예를 들어보자면 Visual Studio 프로젝트를 빌드하고 테스트를 하려면 위의 설정 부분에서 MSBuilde.exe파일과 MSTest.exe파일의 위치를 멥핑해주면 된다. 모든 설명은 아래 그림으로 대처하겠다.

 

 

 

이상으로 젠킨스 설치와 설정에 관련된 포스트를 마치도록 하고, 다음에는 실질적으로 Auto-Build와 Auto-Deploy에 관한 Job을 만드는 과정에 대해 알아보도록 하자.

 

출처 : http://rakisis.tistory.com/8

반응형

+ Recent posts