segunda-feira, 13 de julho de 2009

TFS 2008 no Windows 2008 com o SQL Server 2008 – DETONADO!

Se você gosta de desafios, tente fazer o seguinte: Instale o TFS 2008 (Team Foundation Server) em um Windows Server 2008 com o SQL Server 2008. É uma experiência única, pela qual todo desenvolvedor .NET deveria passar. A sensação de completar essa tarefa é a mesma que se tem ao chegar no final do God of War, ou do Assassins Creed. Impagável!

Escolha o Nível de dificuldade:

Primeiro defina o ambiente que você quer instalar. Você pode optar pelo Single-Server, onde todos os recursos são instalados no mesmo servidor. Ou o Dual-Server, onde temos um servidor de Dados (SQL Server 2008), e um servidor de aplicação (TFS e seus recursos). Você ainda pode optar por uma instalação “Multi-Server”, onde além do servidor de aplicação temos um servidor de Build e outro de Proxy. Esse é o nível mais alto de dificuldade, e não aconselhável para iniciantes.

Fase 1: Domínio ou Workgroup?

Você vai instalar o servidor TFS em uma rede com domínio ou em um WorkGroup? Decida isso antes de prosseguir. No caso de uma rede com domínio, o TFS não pode ser instalado no Domain Control (é claro).

Fase 2: 64-bits com Hyper-V?

O TFS 2008 NÃO pode ser instalado em um Windows Server 2008 64-bits. Se seu servidor é x64, a sugestão é instalar um Windows Server 2008 x64 nele, e habilitar o Hyper-V (Servidor de virtualização que vem no 2008). No Hyper-V você cria uma VM com Windows Server 2008 32-bits, e nele sim você instala o TFS.

Dica 1: O Hyper-V só pode ser instalado se seu hardware atender a determinados requisitos. Use este software para verificá-los.

Dica 2: Para instalar um Windows Server 2008 86x em uma VM do Hyper-V, utilize a edição classificada como “Without Hiper-V”.

Fase 3: Application e Web Roles

Com o Windows Server 2008 32-bits instalado para o TFS, habilite as Roles Application Server e Web Server (IIS). Além disso, coloque seu servidor na rede, é claro. Se estiver no Hyper-V você deve usar uma rede de conexão externa. E se sua rede tiver um DC, coloca o servidor no domínio. Feito isso, Windows Update nele!

Fase 4: Criando os Usuários do TFS

Você deve basicamente criar dois usuários. Um chamado TFSSETUP que será usado para a instalação. E outro chamado TFSSERVICE, que será usado para os serviços. Ambos podem ter nomes diferentes, e você pode opcionalmente criar uma conta de serviço para cada um dos demais serviços do TFS, como TFSREPORTS e TFSPROXY. Mas o TFSSERVICE sozinho dá conta do recado, principalmente em um Single-Server.

Se você está em uma rede com domínio, estes usuários precisam ser criados no Active Directory do seu DC, senão eles devem ser criados como usuários do próprio servidor. O TFSSETUP precisa estar no grupo de Administradores Locais do Servidor TFS (não do domínio). E o TFSSERVICE (e de demais contas de serviço) precisam ter a permissão para se logar como um serviço, no servidor TFS. Você faz isso através dos seguintes passos: Administrative Tools / Local Security Policy / Local Policies / User Rights Assignments / Log on as a service.

Faça um log-off, e a partir daqui utilize o TFSSETUP para as demais operações.

Fase 5: SQL Server 2008

Esse é dureza, e grande parte do truque está aqui. Você não pode instalar o SQL Server 2008 com o Service Pack 1, e nem aplicar o Service Pack 1 após a instalação! O TFS não vai reconhecer o SQL 2008 SP1 como um servidor de dados válido, portanto faça a instalação apenas do SQL 2008. Além disso, você deve utilizar a edição Standard ou Enterprise, nunca a Express. Uma dica é ter um SQL Server 2008 dedicado ao TFS.

Faça uma instalação completa do SQL Server 2008, sem dó. Reporting, Analysis, Full Text Search, etc. O TFS vai precisar de tudo isso. Utilize o TFSSERVICE para os serviços que o SQL Sever solicitar um usuário. Pode ser o mesmo para todos, não tem problema. Instale o SQL Server apenas com o Windows Authentication Mode, e defina o TFSSETUP como um dos administradores.

Fase 6: Verificar o SQL Server 2008

Após a instalação e um reboot, vá ao SQL Server Configuration e defina todos os serviços como “Iniciados” e “Inicialização Automática”. E certifique-se de que o TCP esteja habilitado. Abra o Management Studio e tente se conectar no Database Engine. Se a conexão estiver ok, passe para a fase seguinte.

Fase 7: Sahrepoint

O TFS precisa do SharePoint, seja o Windows SharePoint Services (WSS que é parte do Windows Server), ou do MOSS 2007 (Microsoft Office Sharepoint Server, também conhecido como Sharepoint Products and Tecnologies). O WSS pode ser instalado e configurado pelo próprio instalador do TFS. Já o MOSS 2007 precisa ser instalado antes. Você pode instalá-lo no mesmo servidor do TFS ou em um outro servidor. No meu caso eu instalei o MOSS 2007 no mesmo servidor do TFS, logo após a instalação do SQL Server 2008. Seguem os passos da instalação do MOSS:

Passo 1: Execute o instalador e na primeira tela escolha o tipo de instalação AVANÇADA.

Passo 2: Em Server Type escolha a opção COMPLETE.

Passo 3: Ao pedir para reiniciar os serviços, clique em YES.

Passo 4: Na Janela “Connect to Server Farm” escolha a opção “No, I want to create a new server farm”.

Passo 5: Em “Specify configuration Database Settings”, informe o nome do servidor TFS no “Database Server”, mantenha o nome padrão para o “Database name”, e em “Specify Database Access Account” escolha o usuário TFSSERVICE.

Passo 6: Na janela "Configure SharePoint Central Administration Web Application", escolha um número de porta para a Central de Administração do Sharepoint, e guarde este número. E em “Configure Security Settings” escolha NTLM

Passo 7: Ao término da instalação do Sharepoint, abra o prompt de comando como administrador (run as adminstrator). Vá até a pasta: C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\bin\ e execute o seguinte comando:

stsadm.exe -o extendvs -exclusivelyusentlm -url http://WSSServerName:80 -ownerlogin Domain\TFSSERVICE –owneremail "admin@localhost" -sitetemplate sts -description "Default Web Site".

Substituindo o “WSSServerName” pelo nome do seu servidor, e o “Domain” pelo nome do seu domínio.

Passo 8: Ainda no prompt de comando, execute mais esse:

stsadm.exe -o siteowner -url http://WSSServerName:80 -secondarylogin Domain\TFSSETUP

Passo 9: Para finalizar a configuração do MOSS2007 você ainda deve ir na central de administração e configurar todos os serviços para iniciarem automaticamente. Siga as prórprias orientações nas tasks da Central de Administração do Sharepoint. Assim que finalizar tudo, faça um reboot no servidor.

Fase 8: Aplicando o Service Pack 1 no instalador do TFS 2008

Você chegou na fase mais difícil. Se passar por aqui está com o jogo ganho. Como disse antes, o TFS 2008 não reconhece o SQL2008 SP1, mas ele também não reconhece o SQL2008 (sem o SP1). Porém, o SP1 do TFS, esse sim reconhece o SQL2008 (sem o SP1). Mas não existe uma instalação do TFS com o SP1. Muita gente morre aqui e usa o SQL 2005 mesmo.

O truque é aplicar o SP1 do TFS no Setup, antes da instalação. Sim isso é possível. Exige uma certa destreza mas dá pra fazer. Siga exatamente estes passos:

Passo 1: Faça o Download do SP1 do TFS, e salve-o em uma pasta chamada C:\SP1Download

Passo 2: Abra o DVD de instalação do TFS e salve o conteúdo da pasta AT na pasta C:\InstallMedia

Passo 3: Abra o Prompt de Comando como administrador (run as administrator) e execute o seguinte comando: C:\SP1Download\TFS90SP1-KB949786-ENU /extract:C:\SP1Extract

Passo 4: Crie uma pasta chamada C:\MergeFolder

Passo 5: Ainda no prompt de comando execute: msiexec /a C:\InstallMedia\vs_setup.msi /p C:\SP1Extract\TFS90sp1-KB949786.msp TARGETDIR=C:\MergeFolder

Passo 6: na pasta C:\MergeFolder teremos o Setup do TFS com o SP1 já aplicado a ele. Se você chegou até aqui, execute o "Setup.msi" e seja bem vindo a fase nove.

Fase 9: Instalando o TFS

Passo 1: Aceite os termos de licença. (aquele que chegar até aqui e não aceitar os termos de licença será amaldiçoado pela eternidade)

Passo 2: Em Destination Folder pode aceitar o padrão e seguir com Next.

Passo 3: Em "Team Foundation Database Server", indique o nome do servidor do banco de dados.

Passo 4: Em "System Health Check" o setup vai verificar se todos os pré-requisitos estão ok. Caso haja algum problema, é sinal de que você não completou corretamente alguma coisa nas fases anteriores. Neste caso, é um jogo de paciência onde você terá que identificar o problema e repetir alguns passos feitos anteriormente. Use o Guia Oficial de Instalação do TFS para identificar o problema e tomar as ações necessárias. Caso todos os pré-requisitos estejam ok, você poderá continuar com a instalação.

Passo 5: Em "Team Foundation Server Service Account" use o TFSSERVICE.

Passo 6: Em "Reporting Services Data Source Account" use o TFSSERVICE.

Passo 7: Em "Windows SharePoint Services Service Account" selecione "Use Team Foundation Server service account".

Passo 8: Em "Specify Alert Settings" opcionalmente habilite os alertas e defina o servidor SMTP. (opcional)

Passo 9: Inicie e aguarde o término da instalação.

Fase 10: Team Explorer

Instale o Team Explorer nos computadores de desenvolvimento da sua rede, que já tenham o Visual Studio 2008 (Standard, Enterprise ou TeamSystem) instalado. A versão Express é incompatível com o TFS. Instale o Team Explorer no Servidor também, pode parecer sem sentido, mas ele é pré-requisitos para pacotes como o Srcum Process Template da Conchango

É isso aí! Esses foram os passos que eu segui para detonar o TFS2008 no Windows2008 com o SQLServer2008. Agora com tudo já instalado você pode aplicar o SP1 do SQLServer2008, sem problemas.

São muitas as variáveis que envolvem a instalação deste ambiente, e por isso você pode chegar ao mesmo resultado de formas variadas. Caso você tenha alguma dica, ou tenha passado por algumas dessas fases de uma maneira diferente, deixe seu comentário aqui.

Grande Abraço e até a próxima!