Configuração de permissões para a implantação do Team Build
por Jason Lee
Este tópico descreve como configurar permissões para permitir que o servidor de build implante conteúdo em servidores Web e servidores de banco de dados como parte de um processo de build automatizado.
Este tópico faz parte de uma série de tutoriais baseados nos requisitos de implantação empresarial de uma empresa fictícia chamada Fabrikam, Inc. Esta série de tutoriais usa uma solução de exemplo, a solução do Contact Manager, para representar um aplicativo Web com um nível realista de complexidade, incluindo um aplicativo ASP.NET MVC 3, um serviço WCF (Windows Communication Foundation) e um projeto de banco de dados.
O método de implantação no centro desses tutoriais baseia-se na abordagem de arquivo de projeto dividido descrita em Noções básicas sobre o arquivo de projeto, na qual o processo de build é controlado por dois arquivos de projeto, um contendo instruções de build que se aplicam a cada ambiente de destino e outro que contém configurações de build e implantação específicas do ambiente. No momento da compilação, o arquivo de projeto específico do ambiente é mesclado no arquivo de projeto independente do ambiente para formar um conjunto completo de instruções de build.
Visão geral da tarefa
Ao instalar o serviço de build do Team Foundation Server (TFS) 2010, você especifica a identidade com a qual deseja que o serviço seja executado. Por padrão, essa é a conta de serviço de rede. Como alternativa, você pode configurar o serviço de build para ser executado usando uma conta de domínio.
Todas as tarefas de implantação que exigem autenticação do Windows e que você planeja automatizar usando o Team Build serão executadas usando a identidade do serviço de build. Dessa forma, você precisará conceder à identidade do serviço de build todas as permissões necessárias em seus servidores Web e nos servidores de banco de dados.
Observação
A conta de Serviço de Rede usa a conta do computador para autenticar em outros computadores. As contas de computador assumem o formulário [nome de domínio][nome do computador]$— por exemplo, FABRIKAM\TFSBUILD$. Dessa forma, se o serviço de build for executado usando a identidade do Serviço de Rede, você deverá conceder as permissões necessárias à identidade da conta do computador para o servidor de build.
Configurando permissões de servidor Web
Conforme descrito em Escolhendo a abordagem certa para a implantação da Web, há duas abordagens main que você pode usar se quiser implantar pacotes Web em um servidor Web remoto:
- Implante o aplicativo de um local remoto direcionando o Web Deployment Agent Service (também conhecido como agente remoto) no servidor de destino.
- Implante o aplicativo de um local remoto direcionando o Manipulador de Implantação da Web dos Serviços de Informações da Internet (IIS) no servidor de destino.
O agente remoto tem duas limitações principais nesse caso:
- O agente remoto dá suporte apenas à autenticação NTLM. Em outras palavras, a implantação deve usar a identidade do serviço de build. Você não pode representar outra conta.
- Para usar o agente remoto, a conta que executa a implantação deve ser um administrador no servidor de destino.
Juntas, essas duas limitações tornam a abordagem de agente remoto indesejável para uma implantação automatizada do Team Build. Para usar essa abordagem, você precisaria tornar a conta de serviço de build um administrador em todos os servidores Web de destino.
Por outro lado, a abordagem do Manipulador de Implantação da Web oferece várias vantagens:
- O Manipulador de Implantação da Web dá suporte à autenticação básica via HTTPS, o que permite passar as credenciais de uma conta alternativa para a Ferramenta de Implantação da Web do IIS (Implantação da Web).
- Você pode configurar servidores Web de destino para permitir que usuários não administradores implantem conteúdo em sites específicos do IIS usando o Manipulador de Implantação da Web.
Como resultado, é claramente preferível direcionar o Manipulador de Implantação da Web ao automatizar a implantação de pacote Web do Team Build. Esse é o processo recomendado:
- Crie uma conta de domínio com baixo privilégio a ser usada para a implantação.
- Configure o Manipulador de Implantação da Web e conceda à conta as permissões necessárias para implantar conteúdo em um site específico do IIS, conforme descrito em Configurando um Servidor Web para Publicação de Implantação da Web (Manipulador de Implantação da Web).
- Invoque a Implantação da Web e direcione o Manipulador de Implantação da Web, usando a autenticação básica e fornecendo as credenciais da conta de domínio que você criou, para executar a implantação.
Na solução de exemplo do Contact Manager , especifique o tipo de autenticação (básico ou NTLM), as credenciais de Implantação da Web e o endereço do ponto de extremidade (agente remoto ou Manipulador de Implantação da Web) no arquivo de projeto específico do ambiente. Esses valores são usados para formular e executar um comando de Implantação da Web quando o arquivo de projeto é executado. Para obter mais informações, consulte Implantando pacotes Da Web.
Para obter mais informações sobre como configurar o Manipulador de Implantação da Web, incluindo como configurar permissões, consulte Configuring a Web Server for Web Deploy Publishing (Web Deploy Handler). Para obter mais informações sobre como configurar o agente remoto, consulte Configuring a Web Server for Web Deploy Publishing (Remote Agent).
Configurando permissões de servidor de banco de dados
Para implantar um banco de dados no SQL Server, você deve:
- Crie um logon para a conta de implantação na instância SQL Server.
- Conceda as permissões DBCreator de logon na instância do SQL Server.
- Após a implantação inicial, adicione o logon à função db_owner no banco de dados de destino. Isso é necessário porque, em implantações subsequentes, você está modificando um banco de dados existente em vez de criar um novo banco de dados.
Você pode autenticar em uma instância de SQL Server usando a autenticação NTLM ou a autenticação SQL Server:
- Se você usar a autenticação NTLM, precisará conceder as permissões descritas acima para a conta de serviço de build.
- Se você usar SQL Server autenticação, precisará conceder as permissões descritas acima para a conta SQL Server. Você também precisa incluir o SQL Server nome de usuário e senha na cadeia de conexão usada para implantar o banco de dados.
Para obter detalhes passo a passo sobre como configurar permissões para implantação de banco de dados, consulte Configurando um servidor de banco de dados para publicação de implantação na Web.
Conclusão
Neste ponto, você deve entender as permissões necessárias, juntamente com as opções de autenticação abertas para você, ao automatizar implantações de aplicativo Web e banco de dados do Team Build. Você também deve ser capaz de implementar as permissões necessárias em servidores Web do IIS e SQL Server servidores de banco de dados.
Leitura Adicional
Para obter mais informações sobre como configurar ambientes de servidor Windows para dar suporte à implantação remota, consulte Configurando ambientes de servidor para implantação da Web.