<VirtualHost*:80>
ServerAdmin webmaster@localhost
ServerName ci.company.com
ServerAlias ci
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPreserveHost on
ProxyPass / http://localhost:8080/
</VirtualHost>
# a2ensite jenkins
# apache2ctl restart
설치가 완료되었다.
이후 인터넷 브라우져로 http://[자신의 서버 주소]:8080 으로 jenkins에 접속할 수 있다.
2. Jenkins 설정
우선 사용에 앞서 설정을 좀 해두도록 하겠다.
http://[자신의 서버주소]:8080 으로 접속하시면 jenkins 페이지가 나타난다.
- Jenkins 접속 권한 설정
좌측의 'Jenkins 관리'를 클릭 -> 'Configure Global Security'를 선택
지금 상태로는 서버가 Jenkins 서비스를 제공한다는 사실만 안다면 누구나 접속해서 사용할 수 있다. 나는 인증되지 않은 사용자가 함부로 소스를 컴파일하거나 설정을 변경하기 원치 않으므로 접속 권한을 제한하도록 할 것이다.
'Enable security'에 체크
'Security Realm'에서 'Unix user/group database'를 선택. 이를 통해 리눅스 계정의 아이디와 비밀번호로 접속할 수 있다.
'Authorization'에서 'Logged-in users can do anything'을 선택. 이를 통해 로그인한 사용자는 모든 것을 할 수 있게 되었다.
'Save' 버튼을 눌러 적용해준다.
- Jenkins 기본 설정
좌측의 'Jenkins 관리'를 클릭 -> '시스템 설정' 선택
작업 개수, 사용할 svn의 workspace version, email notify 등을 설정해준다.
3. Jenkins 작업 추가
첫 화면에서 '새로운 Job'을 선택한다.
'Job 이름'은 영문으로 띄어쓰기 없이 작성한다. 이후 리눅스 Jenkins workspace 폴더에 이 이름으로 폴더가 생성된다.
'Build a free-style software project'를 선택한다.
'소스 코드 관리'에서 'Subversion'을 선택한다. 우리는 앞서 설치한 svn을 이용할 것이다.
'Repository URL'에 'svn://localhost/[저장소이름]/trunk'를 입력한다. (보다 구체적인 경로도 ok)
'Local module directory'에 svn에게서 checkout한 소스가 저장될 폴더를 지정한다. 기본 값은 '.'으로 이는 /home/jenkins/workspace/[작업이름]/ 을 의미한다.
'Execute shell'에서 'Add build step'을 클릭 후, 'Execute shell'을 선택. 빌드 시작 버튼을 클릭했을 시 수행할 쉘 스크립트를 작성한다. 보통 빌드를 위한 명령이 들어간다. 나는 arm linux kernel 빌드를 수행하였으므로
make clean
make -j48 zImage
를 입력하였다. 쉘 스크립트 실행 위치는 /home/jenkins/workspace/[작업이름]/ 이다.
'Post-build Actions'에서 'Add post-build action'을 클릭하고 'Archive the artifacts'를 선택하여 아카이브할 파일 산출물이 들어있는 폴더/파일을 넣어둔다. 내 경우는
arch/arm/boot/zImage
이다. 이렇게 설정해두면 이후 빌드가 완료되면 zImage파일을 복사하여 /home/jenkins/jobs/[작업이름]/builds/[빌드날과 시간]/archive/ 에 저장된다. 이를 통해 산출물을 관리할 수 있게 된다.
'저장' 버튼을 눌러 적용.
그밖에 주기적으로 컴파일을 한다거나, Jenkins 플러그인을 통한 추가 설정은 입맛대로 수행하시면 된다.
이후 대쉬 보드에 추가한 작업이 나오고 우측의 아이콘을 클릭하여 빌드, 컴파일을 실행할 수 있다.
작업을 선택하면 작업 페이지에서 다음 작업 들을 할 수 있다.
-
작업 설정
-
작업 공간에서 svn에게서 checkout한 파일들을 다운로드
-
가장 최근에 빌드에 성공한 산출물 다운로드
-
'최근 변경 사항들'을 통해 빌드한 소스 코드들의 리비전이 이전 리비전과 어떻게 달라졌는지 확인 가능. (svn diff와 같음)
-
빌드 수행에 의한 콘솔 출력 결과를 확인 가능.
-
기타 빌드 상태를 확인 가능.
이제 웹 인터페이스를 통해서 버튼 한번으로 가장 최신의 소스 코드를 빌드하고, 그 산출물을 버튼 한번으로 다운로드 받을 수 있으며, 빌드 히스토리를 통해 이전 빌드 산출물을 다운로드 하거나, 빌드 에러 원인의 추적 등을 수행할 수 있다.
'OS > Linux' 카테고리의 다른 글
리눅스 시스템 설정과 자원 사용량 확인 명령어 (0) | 2013.11.26 |
---|---|
vi 스크립트 명령어 (0) | 2013.07.30 |