Trac 서버는 Apache(http, https), Python 기반에서 작동한다.

Subversion 프로토콜(svn)을 사용하지 않고 웹서버(Apache) 기반에서 사용하는 이유는
웹의 편리한 인터페이스를 사용하고 Subversion과 Trac의 통합관리를 하기 위함이다.

01. Apache 서버를 설치한다.
http://httpd.apache.org/download.cgi 에서 최신 버전의 Apache http Server를 구할 수 있다.
2008-12-14에 배포된 apache_2.2.11-win32-x86-openssl-0.9.8i.msi 파일을 다운로드 받아서 설치한다.

설치시 특별한 옵션은 없으며 다음(Next)를 눌러 설치한다.

02. Apach_IIS_SupportTool을 설치한다.
CruiseControl.NET의 Web DashBoard는 IIS 기반에서 돌아가기 때문에 IIS SupportTool을 설치해야 한다.

설치 완료 후

cmd /k "cd /d C:\Program Files\Support Tools"
httpcfg set iplisten -i 192.168.0.2
192.168.0.2 대신에 현재 컴퓨터에 설정된 IP를 입력합니다.
아래와 같이 결과가 나오면 됩니다.
HttpSetServiceConfiguration completed with 0.


03. SVN for Apache

SVN은 여러가지 버전으로 배포됩니다. 그중에서 아파치용으로 배포되는 SVN을 다운로드 받습니다.
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100&expandFolder=8100
위 페이지에서
이름 : Setup-Subversion-1.6.2.msi
설명 : Windows MSI installer with the basic win32 binaries - includes binaries for Apache 2.2.x (2.2.9 or higher is required within the 2.2.x series)
를 다운로드 받습니다.

설치시 특별한 옵션은 없으며 다음(Next)를 눌러 설치한다.


04. Edit httpd_conf

"C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf"
위 경로의 설정 파일을 왼쪽의 파일로 덮어쓰기 한다.



05. Make Root folder
TRAC 시스템의 Root 폴더를 만든다. (D:\TRAC_SYSTEM)



06. htpasswd and authz
D:\TRAC_SYSTEM\Repos 폴더에 2개의 파일을 생성한다.
htpasswd : Apache 서버는 htpasswd 파일을 이용하여 사용자 ID / PW 를 관리한다.
authz : Trac 시스템의 프로젝트 접근권한 설정을 관리한다.
[sample:/]         '프로젝트명
sampleuser = rw    '사용자 권한
* = r              '등록되지 않은 모든 사용자의 권한을 읽기만(r) 허용

Create authz.cmd

authz 파일 생성

Create htpasswd_Add Account.cmd

htpasswd 파일 생성 및 Account 추가


07_1. Python 설치

http://www.python.org/download

위 페이지에서
이름 : Python 2.6.4 Windows installer
를 다운로드 받아서 설치합니다.


07_2. SVN-python
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100&expandFolder=8100
위 페이지에서
이름 : svn-python-1.6.2.win32-py2.6.exe
설명 : Python 2.6 bindings installer for Win32.
를 다운로드 받아서 설치합니다.


08. Gensi
http://genshi.edgewall.org/wiki/Download#installers
위 페이지에서
이름 : Genshi-0.5.1.win32-py2.6.exe
을 다운로드 받아서 설치합니다.


09. setuptools
http://peak.telecommunity.com/dist/ez_setup.py
위 파일을 다운받아서

C:\Python26\python.exe ez_setup.py

위와 같이 실행하면 자동으로 설치된다.


10. ModPython(python 2.6)


다운 받아서 설치한다.


11. PySqlite
http://oss.itsystementwicklung.de/trac/pysqlite/#Downloads
위 페이지에서
이름 : Python 2.6
을 다운 받아서 설치한다.


12. Enscript(Syntex Hilighting)
http://sourceforge.net/project/showfiles.php?group_id=23617&package_id=16960
위 페이지에서
이름 : enscript-1.6.3-9-bin.exe
를 다운 받아서 설치한다.


13. Trac
http://trac.edgewall.org/wiki/TracDownload
위 페이지에서
이름 : Trac-0.11.4.win32.exe
를 다운 받아서 설치한다.

14. Templeate For Korean
한국어 템플릿을 복사한다.
영어로 작성되어 있는 Python 파일의 일부를 한국어로 수정하였음.
Trac 0.11.4 버전에 맞게 수정함.



15. TRAC_TOOLS
trac에 svn commit을 할 경우
trac-post-commit-hook
trac-pre-commit-hook
위의 2가지 hook으로 commit 제어가 가능하다.


16. Plugins
Trac 시스템에 설치가능한 플러그인


17. CreateProject
프로젝트를 자동으로 생성해주는 배치 파일과 환경설정 파일 모음

[프로젝트 생성]
<사용법> CreateProject [프로젝트 이름]
<예제> CreateProect TTF_Project

[Trac 시스템에 Account 추가]
<사용법> Add_Account [추가할 AccountID]
<예제> Add_Account Administrator

[AccountID를 Project에 추가]
<사용법> Add_Permission_User [프로젝트 이름] [AccountID]
<예제> Add_Permission_User TTF_Project Administrator


18. CruiseControl.net
http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET
http://sourceforge.net/projects/ccnet/files/

위 링크에서 아래의 2개 파일을 받아서 설치한다.
CruiseControl.NET-1.4.4-SP1-Setup.exe
CruiseControl.NET-CCTray-1.4.4-SP1-Setup.exe

C:\Program Files\CruiseControl.NET\server\ccnet.config 파일에 XML 형식으로 프로젝트를 추가한다.
(ccnet.exe는 실행중에 ccnet.config 파일을 참조하여 작동한다.)
<cruisecontrol xmlns:cb="urn:ccnet.config.builder">
  <project name="MyFirstProject">
  </project>
</cruisecontrol>

ccnet.config 파일에 XML 형식으로 컨트롤 블럭을 추가하여 CruiseControl.net을 제어할 수 있다.

Source Control Block

Task Control Block

Trigger Block
Schedule Trigger(스케쥴로 정해진 시간에 실행)
Internal Trigger(주기적인 시간에 반복적인 실행)
Project Trigger(종속된 프로젝트의 빌드 완료 상태에 따른 실행)
Url Trigger(웹페이지의 변경 상태에 따른 실행)
Filter Trigger(트리거의 실행 방지 제어 - 특정 시간 필터)
Multiple Trigger(중첩된 트리거 실행 지원 - AND, OR)

Timeout Configration
<timeout>60000</timeout> (60초 밀리세컨 단위)
<timeout units="millis">60000</timeout>
<timeout units="seconds">60</timeout>
<timeout units="minutes">5</timeout>
<timeout units="hours">1</timeout>

ccnet.config에 "MyFirstProject" msbuild로 추가하였을 경우 설정.
<cruisecontrol xmlns:cb="urn:ccnet.config.builder">
 <!-- This is your CruiseControl.NET Server Configuration file. Add your projects below! -->
 <!--
  <project name="MyFirstProject" />
 -->
 <project name="MyFirstProject">
  <tasks>
   <msbuild>
     <executable>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe</executable>
     <workingDirectory>D:\TTF Project\StringFunc</workingDirectory>
     <projectFile>StringFuncion.sln</projectFile>
     <buildArgs>/v:quiet /noconlog /p:Configuration=Debug</buildArgs>
     <targets>Build;StringFuncion</targets>
     <timeout>900</timeout>
     <logger>c:\Program Files\CruiseControl.NET\server\Rodemeyer.MsBuildToCCNet.dll</logger>
   </msbuild>
  </tasks>
 </project>
</cruisecontrol>

Improved MSBuild Integration(logger에 빌드 결과를 깔끔하게 출력)

2009/06/08 23:20 2009/06/08 23:20

글 걸기 주소 : 이 글에는 트랙백을 보낼 수 없습니다

덧글을 달아 주세요