응용개발자의 자료저장소

출처 : http://talsu.net/133
작성자 : 탈수

Windows Server 2008 R2 Core 환경에 CruiseControl.NET을 설치하여 원격 Buil Server를 구축 하는 업무를 맏게 되었다.
일반 GUI환경에서의 설치방법이나 후기는 많은 편이어서 어렵지 않게 할 수 있는데 GUI가 없는 Server Core환경에서는 몇가지 요소때문에 곤란한 부분이 생긴다. PowerShell을 설치해서 사용하는등 개인적인 부분도 있으니 자신에게 필요한 부분인지 생각 해 보고 적용 하도록 하자.

  1. Windows Server 2008 R2 Core 버전 설치 (난 Standard버전을 설치 하였다.)

  2. .NET FrameWork 설치  
    start /w ocsetup NetFx2-ServerCore 
    start /w ocsetup NetFx3-ServerCore
    start /w ocsetup NetFx2-ServerCore-WOW64
    start /w ocsetup NetFx3-ServerCore-WOW64

  3. PowerShell 설치
    start /w ocsetup MicrosoftWindowsPowerShell
  4. cmd대신 PowerShell을 기본으로 설정 하면 편리 하다.

  5. IIS 설치
    start /w ocsetup IIS-WebServerRole 
    start /w ocsetup WAS-NetFxEnvironment 
    start /w ocsetup IIS-ISAPIExtensions  
    start /w ocsetup IIS-ISAPIFilter  
    start /w ocsetup IIS-NetFxExtensibility
    start /w ocsetup IIS-ManagementService 
    start /w ocsetup IIS-ASPNET

  6. Reboot
    shutdown -r

  7. Subversion Client 설치 (SVN 리포지터리의 소스를 받아서 Build하는 경우 해당)
    CollabNet Subversion Command-Line Client 를 설치 한다.
    설치 경로 C:\Program Files (x86)\CollabNet\Subversion Client를(svn.exe) Path에 등록 시키면 후에 편리하다.

  8. CruiseControl.NET 설치 
    설치 옵션의 Web Dashboard를 꼭 설치 하도록 하자.

  9. CruiseControl.Net 서비스로 실행하기
    설치 중 CruiseControl를 Windows Service에 추가 하는것을 선택 했다면 (기본값) Windows Service로 사용할 수 있다.
    기본값은 시작 유형이 수동으로 되어 있기 때문에 Service가 꺼져 있다. 이것을 활성화 시키기 위해서는
     net start CCService

  10. Service의 시작 유형을 자동으로 바꾸기 위해서는 (PowerShell명령이다. cmd에서 하는 방법도 있다)
    PowerShell Set-Service CCService -startuptype Automatic

  11. IIS에 Web Dashboard 등록하기
    CruiseControl 설치시 IIS에 자동으로 Web Dashboard를 설치 해주는 옵션이 있지만 Windows Server 2008 R2 Core 버전에서는 적용이 되지 않는다. 그래서 수동으로 설치된 경로의 webdashboard 폴더를 응용 프로그램으로 등록 해 줘야 한다.
    여기서는 Default Web Site에 응용 프로그램으로 추가 하겠다. 명령을 참고하여 자신에게 맞게 적용하자.
    c:\Windows\System32\inetsrv\appcmd.exe add app /site.name:'Default Web Site' /path:/ccnet /physicalPath:"C:\Program Files (x86)\CruiseControl.NET\webdashboard"

    applicationPool부분을 꼭 손봐줘야 한다. 매우 중요하다.
    c:\Windows\System32\inetsrv\appcmd.exe set app "Default Web Site/ccnet" /applicationPool:"Classic .NET AppPool"

  12. 방화벽 설정
    CruiseControl 서버에 CCtray같은 클라이언트 프로그램으로 접속 하기 위해서는 서버측에 21234포트가 열려 있어야 한다.
    바람직한 방법은 방화벽의 인바운드 규칙에 21234포트를 추가 하는 것이다. Web Dashboard도 80번 포트가 아닌 다른 포트를 이용 한다면 같은 방법으로 추가 하자.
    netsh advfirewall firewall add rule name="allow CCnet" protocol=TCP dir=in localport=21234 action=allow

    외부에 노출 되지 않는 환경이고 하나씩 추가 하는 것이 귀찮다면 방화벽을 꺼버리자 (추천하지 않는다)
    netsh firewall set opmode disable

  13. 테스트
    설치가 완료 되었다. CruiseControl이 설치된 폴더로 가서 ccnet.exe를 직접 실행 시키거나 위에서 설명한데로 Windows Service로 CruiseControl를 실행한 상태에서 클라이언트 컴퓨터로 http://서버주소/ccnet 에 접속해 보자.
    에러 메세지 없이 다음과 같은 화면을 본다면 성공이다.

자세히 기술 하다보니 복잡해 보이지만 직접 진행 해 보면 그리 어려운 작업이 아니라는것을 느끼게 된다. CruiseControl를 설정하여 SVN, MSBuild를 사용하는 방법은 다음 포스트에서 진행 하겠다.


Comment 0