Team Build 배포를 위한 권한 구성Configuring Permissions for Team Build Deployment

Jason Leeby Jason Lee

PDF 다운로드Download PDF

이 항목에서는 빌드 서버에서 자동화 된 빌드 프로세스의 일부로 콘텐츠를 웹 서버와 데이터베이스 서버에 배포할 수 있도록 사용 권한을 구성 하는 방법에 대해 설명 합니다.This topic describes how to configure permissions to enable your build server to deploy content to web servers and database servers as part of an automated build process.

이 항목에서는 Fabrikam, i n c. 라는 가상 회사의 엔터프라이즈 배포 요구 사항을 기반으로 하는 일련의 자습서의 일부를 형성 합니다. 이 자습서 시리즈에서는 샘플 솔루션——을 사용 하 여ASP.NET MVC 3 응용 프로그램, Windows Communication Foundation (WCF) 서비스 및 데이터베이스 프로젝트를 비롯 한 현실적인 복잡성의 웹 응용 프로그램을 나타냅니다.This topic forms part of a series of tutorials based around the enterprise deployment requirements of a fictional company named Fabrikam, Inc. This tutorial series uses a sample solution—the Contact Manager solution—to represent a web application with a realistic level of complexity, including an ASP.NET MVC 3 application, a Windows Communication Foundation (WCF) service, and a database project.

이러한 자습서의 핵심에 나오는 배포 방법은 프로젝트 파일 이해에 설명 된 프로젝트 파일을 이해 하는 방법에 설명 되어 있습니다 .이는 빌드 프로세스가 모든 대상 환경에 적용—되는 빌드 명령을 포함 하는 두 개의 프로젝트 파일과 환경 특정 빌드 및 배포 설정을 포함 하는 프로젝트 파일에 의해 제어 됩니다.The deployment method at the heart of these tutorials is based on the split project file approach described in Understanding the Project File, in which the build process is controlled by two project files—one containing build instructions that apply to every destination environment, and one containing environment-specific build and deployment settings. 빌드 시 환경 관련 프로젝트 파일은 환경에 관계 없는 프로젝트 파일에 병합 되어 전체 빌드 명령 집합을 형성 합니다.At build time, the environment-specific project file is merged into the environment-agnostic project file to form a complete set of build instructions.

작업 개요Task Overview

Team Foundation Server (TFS) 2010 빌드 서비스를 설치 하는 경우 서비스를 실행 하려는 id를 지정 합니다.When you install the Team Foundation Server (TFS) 2010 build service, you specify the identity with which you want the service to run. 기본적으로이 계정은 네트워크 서비스 계정입니다.By default, this is the Network Service account. 또는 도메인 계정을 사용 하 여 실행 되도록 빌드 서비스를 구성할 수 있습니다.Alternatively, you can configure the build service to run using a domain account.

Windows 인증을 필요로 하 고 팀 빌드를 사용 하 여 자동화할 계획인 모든 배포 작업은 빌드 서비스 id를 사용 하 여 실행 됩니다.Any deployment tasks that require Windows authentication, and that you plan to automate using Team Build, will run using the build service identity. 따라서 웹 서버 및 데이터베이스 서버에 대 한 필요한 권한을 빌드 서비스 id에 부여 해야 합니다.As such, you'll need to grant the build service identity any required permissions on your web servers and your database servers.

Note

네트워크 서비스 계정은 컴퓨터 계정을 사용 하 여 다른 컴퓨터에 인증 합니다.The Network Service account uses the machine account to authenticate to other computers. 컴퓨터 계정은 * [도메인 이름][컴퓨터 이름] * $ —형식으로 사용 합니다 (예: FABRIKAM\TFSBUILD $ ).Machine accounts take the form *[domain name][machine name]*$—for example, FABRIKAM\TFSBUILD$. 따라서 빌드 서비스가 네트워크 서비스 id를 사용 하 여 실행 되는 경우 빌드 서버에 대 한 컴퓨터 계정 id에 필요한 권한을 부여 해야 합니다.As such, if your build service runs using the Network Service identity, you should grant any required permissions to the machine account identity for your build server.

웹 서버 권한 구성Configuring Web Server Permissions

웹 배포에 대 한 적절 한 접근 방식 선택에 설명 된 대로 원격 웹 서버에 웹 패키지를 배포 하려는 경우 두 가지 주요 방법으로 사용할 수 있습니다.As described in Choosing the Right Approach to Web Deployment, there are two main approaches you can use if you want to deploy web packages to a remote web server:

  • 대상 서버에서 웹 Deployment Agent 서비스 (원격 에이전트 라고도 함)를 대상으로 지정 하 여 원격 위치에서 응용 프로그램을 배포 합니다.Deploy the application from a remote location by targeting the Web Deployment Agent Service (also known as the remote agent) on the destination server.
  • 대상 서버에서 인터넷 정보 서비스 (IIS) 웹 배포 처리기 를 대상으로 지정 하 여 원격 위치에서 응용 프로그램을 배포 합니다.Deploy the application from a remote location by targeting the Internet Information Services (IIS) Web Deploy Handler on the destination server.

이 경우 원격 에이전트에는 두 가지 주요 제한 사항이 있습니다.The remote agent has two key limitations in this case:

  • 원격 에이전트는 NTLM 인증만 지원 합니다.The remote agent supports only NTLM authentication. 즉, 배포는 빌드 서비스 id—를 사용 해야 하며 다른 계정을 가장할 수 없습니다.In other words, the deployment must use the build service identity—you can't impersonate another account.
  • 원격 에이전트를 사용 하려면 배포를 수행 하는 계정이 대상 서버의 관리자 여야 합니다.To use the remote agent, the account that performs the deployment must be an administrator on the target server.

이러한 두 가지 제한 사항은 자동화 된 팀 빌드 배포에 대 한 원격 에이전트 접근 방식이 바람직하지 않도록 합니다.Together, these two limitations make the remote agent approach undesirable for an automated Team Build deployment. 이 접근 방식을 사용 하려면 모든 대상 웹 서버에서 빌드 서비스 계정을 관리자로 설정 해야 합니다.To use this approach, you'd need to make the build service account an administrator on any target web servers.

이와 달리 웹 배포 처리기 방법은 다양 한 이점을 제공 합니다.In contrast, the Web Deploy Handler approach offers various advantages:

  • 웹 배포 처리기는 HTTPS를 통한 기본 인증을 지원 하므로 대체 계정의 자격 증명을 IIS 웹 배포 도구 (웹 배포)에 전달할 수 있습니다.The Web Deploy Handler supports basic authentication over HTTPS, which allows you to pass the credentials of an alternative account to the IIS Web Deployment Tool (Web Deploy).
  • 관리자가 아닌 사용자가 웹 배포 처리기를 사용 하 여 특정 IIS 웹 사이트에 콘텐츠를 배포할 수 있도록 대상 웹 서버를 구성할 수 있습니다.You can configure target web servers to allow non-administrator users to deploy content to specific IIS websites using the Web Deploy Handler.

따라서 팀 빌드에서 웹 패키지 배포를 자동화 하는 경우 웹 배포 처리기를 대상으로 하는 것이 좋습니다.As a result, it's clearly preferable to target the Web Deploy Handler when you automate web package deployment from Team Build. 다음은 권장 되는 프로세스입니다.This is the recommended process:

  1. 배포에 사용할 권한이 낮은 도메인 계정을 만듭니다.Create a low-privileged domain account to use for the deployment.
  2. 웹 배포 게시용 웹 서버 구성 (웹 배포 처리기)에 설명 된 대로 웹 배포 처리기를 구성 하 고 특정 IIS 웹 사이트에 콘텐츠를 배포 하는 데 필요한 권한을 계정에 부여 합니다.Configure the Web Deploy Handler and grant the account the required permissions to deploy content to a specific IIS website, as described in Configuring a Web Server for Web Deploy Publishing (Web Deploy Handler).
  3. 웹 배포를 호출 하 웹 배포 고, 기본 인증을 사용 하 고 사용자가 만든 도메인 계정의 자격 증명을 제공 하 여 배포를 수행 합니다.Invoke Web Deploy and target the Web Deploy Handler, using basic authentication and supplying the credentials of the domain account you created, to perform the deployment.

Contact Manager 샘플 솔루션에서는 환경 관련 프로젝트 파일에서 인증 유형 (기본 또는 NTLM), 웹 배포 자격 증명 및 끝점 주소 (원격 에이전트 또는 웹 배포 처리기)를 지정 합니다.In the Contact Manager sample solution, you specify the authentication type (basic or NTLM), the Web Deploy credentials, and the endpoint address (remote agent or Web Deploy Handler) in the environment-specific project file. 이러한 값은 프로젝트 파일이 실행 될 때 웹 배포 명령을 작성 하 고 실행 하는 데 사용 됩니다.These values are used to formulate and run a Web Deploy command when the project file is executed. 자세한 내용은 웹 패키지 배포를 참조 하세요.For more information, see Deploying Web Packages.

사용 권한을 구성 하는 방법을 비롯 하 여 웹 배포 처리기를 구성 하는 방법에 대 한 자세한 내용은 웹 배포 게시용 웹 서버 구성 (웹 배포 처리기)을 참조 하세요.For more information on configuring the Web Deploy Handler, including how to configure permissions, see Configuring a Web Server for Web Deploy Publishing (Web Deploy Handler). 원격 에이전트를 구성 하는 방법에 대 한 자세한 내용은 웹 배포 게시용 웹 서버 구성 (원격 에이전트)을 참조 하세요.For more information on configuring the remote agent, see Configuring a Web Server for Web Deploy Publishing (Remote Agent).

데이터베이스 서버 사용 권한 구성Configuring Database Server Permissions

데이터베이스를 SQL Server에 배포 하려면 다음을 수행 해야 합니다.To deploy a database to SQL Server, you must:

  • SQL Server 인스턴스에서 배포 계정에 대 한 로그인을 만듭니다.Create a login for the deploying account on the SQL Server instance.
  • SQL Server 인스턴스에 대 한 로그인 DBCreator 권한을 부여 합니다.Grant the login DBCreator permissions on the SQL Server instance.
  • 초기 배포 후 로그인을 대상 데이터베이스의 db_owner 역할에 추가 합니다.After the initial deployment, add the login to the db_owner role on the target database. 후속 배포에서는 새 데이터베이스를 만드는 대신 기존 데이터베이스를 수정 하기 때문에이 작업이 필요 합니다.This is required because on subsequent deployments, you're modifying an existing database rather than creating a new database.

NTLM 인증 또는 SQL Server 인증을 사용 하 여 SQL Server 인스턴스에 인증할 수 있습니다.You can authenticate to a SQL Server instance using either NTLM authentication or SQL Server authentication:

  • NTLM 인증을 사용 하는 경우 위에 설명 된 사용 권한을 빌드 서비스 계정에 부여 해야 합니다.If you use NTLM authentication, you need to grant the permissions described above to the build service account.
  • SQL Server 인증을 사용 하는 경우 위에 설명 된 사용 권한을 SQL Server 계정에 부여 해야 합니다.If you use SQL Server authentication, you need to grant the permissions described above to the SQL Server account. 또한 데이터베이스를 배포 하는 데 사용 하는 연결 문자열에 SQL Server 사용자 이름 및 암호를 포함 해야 합니다.You also need to include the SQL Server user name and password in the connection string you use to deploy the database.

데이터베이스 배포에 대 한 사용 권한을 구성 하는 방법에 대 한 단계별 정보는 웹 배포 게시용 데이터베이스 서버 구성을 참조 하세요.For step-by-step details on how to configure permissions for database deployment, see Configuring a Database Server for Web Deploy Publishing.

결론Conclusion

이 시점에서 팀 빌드에서 웹 응용 프로그램 및 데이터베이스 배포를 자동화 하는 경우 필요한 인증 옵션과 함께 필요한 사용 권한을 이해 해야 합니다.At this point, you should understand the permissions required, together with the authentication options open to you, when you automate web application and database deployments from Team Build. 또한 IIS 웹 서버 및 SQL Server 데이터베이스 서버에 필요한 권한을 구현할 수 있어야 합니다.You should also be able to implement the necessary permissions on IIS web servers and SQL Server database servers.

추가 참고 자료Further Reading

원격 배포를 지원 하도록 Windows server 환경을 구성 하는 방법에 대 한 자세한 내용은 웹 배포용 서버 환경 구성을 참조 하세요.For more information on configuring Windows server environments to support remote deployment, see Configuring Server Environments for Web Deployment.