Team Build 배포를 위한 권한 구성

작성자 : Jason Lee

이 항목에서는 빌드 서버가 자동화된 빌드 프로세스의 일부로 웹 서버 및 데이터베이스 서버에 콘텐츠를 배포할 수 있도록 권한을 구성하는 방법에 대해 설명합니다.

이 항목은 Fabrikam, Inc.라는 가상 회사의 엔터프라이즈 배포 요구 사항을 기반으로 하는 일련의 자습서의 일부를 구성합니다. 이 자습서 시리즈에서는 샘플 솔루션인 Contact Manager 솔루션을 사용하여 ASP.NET MVC 3 애플리케이션, WCF(Windows Communication Foundation) 서비스 및 데이터베이스 프로젝트를 포함하여 현실적인 수준의 복잡성을 가진 웹 애플리케이션을 나타냅니다.

이 자습서의 핵심인 배포 방법은 프로젝트 파일 이해에 설명된 분할 프로젝트 파일 접근 방식을 기반으로 합니다. 이 방법은 빌드 프로세스가 모든 대상 환경에 적용되는 빌드 지침과 환경별 빌드 및 배포 설정을 포함하는 두 개의 프로젝트 파일에 의해 제어됩니다. 빌드 시 환경별 프로젝트 파일이 환경에 구애받지 않은 프로젝트 파일로 병합되어 전체 빌드 지침 집합을 형성합니다.

작업 개요

TFS(Team Foundation Server) 2010 빌드 서비스를 설치할 때 서비스를 실행할 ID를 지정합니다. 기본적으로 네트워크 서비스 계정입니다. 또는 도메인 계정을 사용하여 실행되도록 빌드 서비스를 구성할 수 있습니다.

Windows 인증 필요하고 팀 빌드를 사용하여 자동화하려는 모든 배포 작업은 빌드 서비스 ID를 사용하여 실행됩니다. 따라서 빌드 서비스 ID에 웹 서버 및 데이터베이스 서버에 필요한 모든 권한을 부여해야 합니다.

참고

네트워크 서비스 계정은 컴퓨터 계정을 사용하여 다른 컴퓨터에 인증합니다. 컴퓨터 계정은 [도메인 이름][컴퓨터 이름]$(예: FABRIKAM\TFSBUILD$) 형식을 사용합니다. 따라서 빌드 서비스가 네트워크 서비스 ID를 사용하여 실행되는 경우 빌드 서버의 컴퓨터 계정 ID에 필요한 권한을 부여해야 합니다.

웹 서버 권한 구성

웹 배포에 대한 올바른 방법 선택에 설명된 대로 원격 웹 서버에 웹 패키지를 배포하려는 경우 사용할 수 있는 두 가지 기본 방법이 있습니다.

  • 대상 서버의 웹 Deployment Agent 서비스(원격 에이전트라고도 함)를 대상으로 하여 원격 위치에서 애플리케이션을 배포합니다.
  • 대상 서버에서 IIS(인터넷 정보 서비스) 웹 배포 처리기를 대상으로 하여 원격 위치에서 애플리케이션을 배포합니다.

이 경우 원격 에이전트에는 두 가지 주요 제한 사항이 있습니다.

  • 원격 에이전트는 NTLM 인증만 지원합니다. 즉, 배포는 빌드 서비스 ID를 사용해야 하며 다른 계정을 가장할 수 없습니다.
  • 원격 에이전트를 사용하려면 배포를 수행하는 계정이 대상 서버의 관리자여야 합니다.

이러한 두 가지 제한 사항을 함께 사용하면 자동화된 Team Build 배포에 원격 에이전트 접근 방식을 바람직하지 않습니다. 이 방법을 사용하려면 빌드 서비스 계정을 모든 대상 웹 서버의 관리자로 만들어야 합니다.

반면 웹 배포 처리기 접근 방식은 다음과 같은 다양한 이점을 제공합니다.

  • 웹 배포 처리기는 대체 계정의 자격 증명을 IIS 웹 배포 도구(웹 배포)에 전달할 수 있는 HTTPS를 통한 기본 인증을 지원합니다.
  • 관리자가 아닌 사용자가 웹 배포 처리기를 사용하여 특정 IIS 웹 사이트에 콘텐츠를 배포할 수 있도록 대상 웹 서버를 구성할 수 있습니다.

따라서 팀 빌드에서 웹 패키지 배포를 자동화할 때 웹 배포 처리기를 대상으로 지정하는 것이 분명히 좋습니다. 권장되는 프로세스는 다음과 같습니다.

  1. 배포에 사용할 권한이 낮은 도메인 계정을 만듭니다.
  2. 웹 배포 처리기를 구성하고 웹 배포 게시용 웹 서버 구성(웹 배포 처리기)에 설명된 대로 특정 IIS 웹 사이트에 콘텐츠를 배포하는 데 필요한 권한을 계정에 부여합니다.
  3. 기본 인증을 사용하고 만든 도메인 계정의 자격 증명을 제공하여 배포를 수행하기 위해 웹 배포를 호출하고 웹 배포 처리기를 대상으로 지정합니다.

Contact Manager 샘플 솔루션에서 환경별 프로젝트 파일에서 인증 유형(기본 또는 NTLM), 웹 배포 자격 증명 및 엔드포인트 주소(원격 에이전트 또는 웹 배포 처리기)를 지정합니다. 이러한 값은 프로젝트 파일이 실행될 때 Web Deploy 명령을 작성 및 실행하는 데 사용됩니다. 자세한 내용은 웹 패키지 배포를 참조하세요.

권한을 구성하는 방법을 포함하여 웹 배포 처리기를 구성하는 방법에 대한 자세한 내용은 웹 배포 게시용 웹 서버 구성(웹 배포 처리기)을 참조하세요. 원격 에이전트를 구성하는 방법에 대한 자세한 내용은 웹 배포 게시용 웹 서버 구성(원격 에이전트)을 참조하세요.

데이터베이스 서버 권한 구성

SQL Server 데이터베이스를 배포하려면 다음을 수행해야 합니다.

  • SQL Server instance 배포 계정에 대한 로그인을 만듭니다.
  • SQL Server instance 대한 로그인 DBCreator 권한을 부여합니다.
  • 초기 배포 후 대상 데이터베이스의 db_owner 역할에 로그인을 추가합니다. 이는 후속 배포에서 새 데이터베이스를 만드는 대신 기존 데이터베이스를 수정하기 때문에 필요합니다.

NTLM 인증 또는 SQL Server 인증을 사용하여 SQL Server instance 인증할 수 있습니다.

  • NTLM 인증을 사용하는 경우 위에서 설명한 권한을 빌드 서비스 계정에 부여해야 합니다.
  • SQL Server 인증을 사용하는 경우 위에서 설명한 권한을 SQL Server 계정에 부여해야 합니다. 또한 데이터베이스를 배포하는 데 사용하는 연결 문자열에 SQL Server 사용자 이름 및 암호를 포함해야 합니다.

데이터베이스 배포에 대한 권한을 구성하는 방법에 대한 단계별 세부 정보는 웹 배포 게시를 위한 데이터베이스 서버 구성을 참조하세요.

결론

이 시점에서 팀 빌드에서 웹 애플리케이션 및 데이터베이스 배포를 자동화할 때 필요한 권한과 열려 있는 인증 옵션을 이해해야 합니다. 또한 IIS 웹 서버 및 SQL Server 데이터베이스 서버에 필요한 권한을 구현할 수 있어야 합니다.

추가 정보

원격 배포를 지원하도록 Windows 서버 환경을 구성하는 방법에 대한 자세한 내용은 웹 배포용 서버 환경 구성을 참조하세요.