'jenkins'에 해당되는 글 2건

  1. 2014.05.26 CI환경 구축 (11)
  2. 2014.05.12 CI환경 구축 (01)

CI환경 구축 (11)

개발/CI 2014. 5. 26. 22:00

1. Jenkins 설치

http://jenkins-ci.org/ 에서 Jenkins를 다운로드한다.

이미 WAS가 있는 경우에는 war로 다운로드하고 그렇지 않은 경우 native package를 다운로드한다.

 

여기서는 native package를 설치한다고 가정한다.






설치가 완료된 후에 jenkins가 정상실행되지 않는 경우 포트문제(Default Port 8080)인 경우가 많으므로 Jenkins.xml 파일을 오픈하여 아래와 같이 포트를 변경한다.

변경전 è

<executable>%BASE%\jre\bin\java</executable>

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

 

변경후 è

<executable>%BASE%\jre\bin\java</executable>

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

 

포트변경이 완료되면 jenkins를 서비스에서 재시작한다.




웹페이지에서 Jenkins 사이트로 이동한다.




jenkins관리 메뉴를 클릭한다.




보안설정 버튼을 클릭한다.




Jenkins’ own user database를 선택한다.




회원가입에서 관리자를 먼저 생성한다.

(주의) 관리자 계정을 생성하지 않고 회원가입을 할 수 없도록 수정하면 로그인을 할 수 없어서 재설치를 해야 할 수도 있다.

 

관리자 계정을 생성한 후에는 회원가입을 별도로 할 수 없도록 수정한다.











'개발 > CI' 카테고리의 다른 글

CI환경 구축 (13)  (0) 2014.05.28
CI환경 구축 (12)  (0) 2014.05.27
CI환경 구축 (10)  (0) 2014.05.23
CI환경 구축 (09)  (0) 2014.05.22
CI환경 구축 (08)  (0) 2014.05.21
Posted by 무혹
,

CI환경 구축 (01)

개발/CI 2014. 5. 12. 22:00

1.     지속적인 통합

CI (Continuous Integration) : 정의로서의 의미는 링크걸려있는 위키백과를 보면 되겠다. 내가 생각하는 의미는 개발시 단위 모듈별로 빌드 및 테스트를 계속 반복하여 버그(자체 버그 및 모듈간 연동 버그)를 조기에 발견하는데 적합하다. 점점 복잡도가 올라가는 현재 개발환경에서는 선택이 아닌 필수라고 생각된다.

CI를 하겠다고 해서 그냥 자동으로 되는 것은 아니며 (그렇다면 좋으련만) 물리적인 부분과 감정적(?)인 부분이 필요하다.

감정적인 부분이야 필요성을 조직원들이 인지하고 협업하면서 문화를 정착해나가는 부분이므로 글로 써봐야 소용이 없다. (CI를 글로 배웠나?)

그래서 관련 솔루션 구축 및 설정등의 물리적인 부분을 위주로 적으려고 한다.

 

2.     연관 솔루션

l  소스관리 : 모든 소스를 하나의 Repository에서 관리하기 위한 툴이다.

소스관리시에는 몇가지 원칙이 있다. 우선 빌드를 위한 모든 내용을 빼먹지 말아야 한다.

오픈소스 라이브러리를 사용하고 있다면 동일 버전의 해당 라이브러리를 소스와 동일 Repository에서 관리해야 한다. 이렇게 하지 않는 경우의 단점은 말하지 않아도

반대로 Repository에서 빌드를 통해 생성할 수 있는 실행파일등은 관리대상에서 제외한다.

언제나 생성할 수 있는 결과물을 저장하여 생기는 용량의 증가와 이해의 어려움을 방지하기 위함이다.

소스관리 툴은 아래와 같이 여러가지 종류가 있다.

-       cvs : 예전부터 사용되던 오픈소스 버전관리툴로서 지금도 사용하는 곳이 있는지는 모르겠다. 오픈소스로서 비용부담없이 사용할 수 있어서 소스관리가 퍼지는데 큰 도움을 주었다. 지금은 더 좋은 툴들이 많아서 점유률이 점점 낮아지는중. 업그레이드도 안되는 것 같다.

-       svn : cvs를 개선한 툴로서 cvs를 만든 사람들이 단점을 보완해서 개발했다고 한다.

지금도 여러곳에서 사용하지만 git의 화려한 명성에 밀리고 있어 보인다.

개인적으로는 분산개발환경이 아니라도 git이 좋다고 생각한다. branch의 비용 때문에.

-       git : 이 문서에서 채택한 툴로서 DVCS(Distributed Version Control System)이다.

리눅스의 버전관리툴로 사용되며 유료/무료 호스팅도 많이 있으며 흔한 말로 대세이다.

빠른 속도, 단순한 구조, 비선형적인 개발, 완벽한 분산을 추구한다.

그외 Mercurial, Perforce등의 툴들이 있다고 하는데 이름만 들어봤다.

 

l  이슈 트래커

프로젝트 내의 모든 이슈를 처리하기 위한 툴이다. 하나의 Repository에서 모든 이슈를 관리하므로 처리이력이나 이슈간 관계를 처리하기 좋다.

이슈 트래커의 종류는 다음과 같다.

-       Mantis : 파이선으로 만들어진 이슈트래커로 이슈관리에 특화되어 있다.

가볍게 쓰기에 좋은 툴이다.

-       Jira : 아틀란시안의 툴로서 해당 회사의 제품을 쓴다면 사용하기 좋다. 10명까지는 가격도 싸고.. 하지만 그 이상의 사용자를 쓰려면 비용이 기하급수적으로 늘어난다.

-       Redmine : Ruby로 만들어진 이슈트래커로서 오픈소스 진영에서 가장 많이 사용하는 툴이라고 생각된다. 여러 플러그인을 통해 기능이 많이 확장된다. 거의 안되는게 없을 정도.

-       그외에 bugzilla, trac등이 있다. ,

 

l  CI

소스관리툴과 연동하여 지속적으로 빌드 및 단위테스트를 수행하는 툴이다.

종류는 다음과 같다.

-       cruisecontrol : 몇번 사용해보기는 했지만 왠지 어색했다. 사용한지 오래되기는 했지만 버그도 좀 있었던것으로 기억된다.

-       Bamboo : jira를 만든 회사에서 만들었으므로 jira와 찰떡궁합. 역시 유료

-       Hudson : sun의 지원을 받다가 oracle의 지배를 받게 된 툴

-       Jenkins : hudson 개발자들이 oracle에게서 독립을 선언하고 새롭게 만든 툴로서 기능도 많고 사용하기 좋은 툴이다.

-       그외에 Anthill, Teamcity등이 있다.

 

 

 

3.     솔루션 선정

-       여기서는 소스관리에 Git, 이슈트래커에 Redmine, CI툴에는 jenkins를 사용하기로 했다.

선정사유는 별다른거 없고 가장 hot한 솔루션위주이다.

       -    윈도우 환경에서 설정하는 경우를 사례로 작성했다.

 

 

 

 

 

'개발 > CI' 카테고리의 다른 글

CI환경 구축 (06)  (0) 2014.05.19
CI환경 구축 (05)  (0) 2014.05.16
CI환경 구축 (04)  (0) 2014.05.15
CI환경 구축 (03)  (0) 2014.05.14
CI환경 구축 (02)  (0) 2014.05.13
Posted by 무혹
,