DevOps – Migração entre domínios do Team Foundation Server

Introdução

Esse artigo tem como finalidade auxiliar na migração de um TFS de um ambiente para outro.

Cenário

O cliente possui um domínio ABC. Nesse domínio está instalado o Team Foundation Server 2013 Update 5 e os usuários do domínio estão inseridos com direitos de leitura e administração das coleções de projetos. O cliente necessita que seja feita uma nova instalação de TFS em outro domínio DEF e os dados do TFS do domínio ABC sejam utilizados nesse novo TFS. Os usuários do domínio ABC logam também no domínio DEF com a mesma conta, apenas em domínios diferentes. Por exemplo o usuário JOSE tem o login ABC\JOSE e no domínio DEF possui também um usuário chamado JOSE, sendo que ele loga como DEF\JOSE. Os administradores do TFS desejam que o usuário JOSE possa utilizar os dois TFS nessa transição, podendo logar em um TFS como o login ABC\JOSE e ver os projetos e coleções devidos e logar no outro TFS com o login DEF\JOSE e ver as mesma coleções e projetos nesse TFS nessa transição.

Requisitos

– Você precisará ter direitos administrativos nos dois domínios, servidores e Team Foundation Server dos dois ambientes;

– Mídia de instalação do Team Foundation Server 2013 Update 5;

– Um Servidor e Instância de SQL exatamente igual ao do domínio ABC no domínio DEF.

Passos

O primeiro passo é replicar exatamente igual os usuários e grupos de domínio que utilizam o Team Foundation Server do domínio ABC para o domínio DEF. Por exemplo, se você possui o usuário ABC\PEDRO que acessa o TFS do domínio ABC, você precisa replicar exatamente igual, inclusive na mesma OU o usuário PEDRO no domínio DEF, pois iremos depois realizar a alteração de usuário quando terminarmos a migração do Team Foundation Server.

Em seguida será necessário realizar o backup dos dados do Team Foundation Server do domínio ABC (iremos chamar o domínio ABC de ESXLAB e o domínio DEF de PORTO devido ao laboratório). Nesse backup serão necessários realizar os backups de todas as informações inclusive da chave de criptografia do Reports do SQL Server no Team Foundation Server.

Acesse o Team Foundation Server Administration Console do domínio ESXLAB e vá em Schedule Backup e agende seus backups. Caso já estejam agendados e você possui já a chave de criptografia do SQL Reports, pule essa fase. Caso não remova a agenda e refaça novamente.

Cuidado! Salve sua senha de recuperação da chave de criptografia do Reports do SQL, pois você irá precisar dela mais tarde.

Depois do backup agendado, execute um FULL BACKUP do Team Foundation Server do domínio ESXLAB.

Em seguida, apenas acesse o Portal do Team Foundation Server do domínio ESXLAB e confirme se o seu TFS está online e operacional.

Agora você irá precisar preparar o novo ambiente que irá hospedar os dados desse TFS. Faça logon no servidor que hospedará o Team Foundation Server do domínio PORTO. Insira sua mídia de instalação do Team Foundation Server e realize a instalação dos binários.

Depois de pronta a instalação dos binários iremos executar a configuração do Team Foundation Server. Você irá executar essa configuração duas vezes, assim evitasse a necessidade de ter que configurar manualmente arquivos binários como o WEB.CONFIG e outros manualmente.

Vá em Configure Installed Features e inicie sua configuração.

Escolha Advanced e siga os passos das telas abaixo.

Escolha sua instância de SQL que ficará armazenado os bancos de dados do TFS, lembrando que esse SQL precisa ter configurado o SQL Reports. Nesse caso o SQL do domínio PORTO meu é a mesma edição, service pack do domínio ESXLAB.

O mesmo nome da conta de serviço do Team Foundation Server do domínio ESXLAB irei usar no domínio PORTO.

Nessa instalação NÃO CONFIGURE O SQL REPORTS, MESMO QUE TENHA NO TFS DO OUTRO DOMINIO. Depois entenderemos o porque.

Como nosso cenário não possui SharePoint, pule essa fase. Também não crie nenhuma Collection nessa instalação.

Pronto! O próximo passo será restaurar o backup do Team Foundation Server do servidor do domínio ESXLAB para o servidor do Team Foundation Server do servidor do domínio PORTO. Essa restauração será feita pelo SQL Server, não pelo TFS.

Passos:

Primeiro, pare o serviço do Visual Studio Team Foundation Background Job Agent do servidor do TFS do domínio PORTO.

Depois faça uma cópia local no servidor do domínio PORTO do backup do servidor do Team Foundation Server do domínio ESXLAB.

Abra o Management Studio do SQL Server.

Delete os bancos de dados do Team Foundation Server do domínio PORTO.

Em seguida restaure os backups bancos de dados do Team Foundation Server do domínio ESXLAB nesse servidor SQL do domínio PORTO.

Restaure as bases TFS_Configuration, TFS_Warehouse, _TFS_Collection, e dos Reports do SQL Server do servidor de SQL do domínio ESXLAB.

Em seguida inicie o serviço Visual Studio Team Foundation Background Job Agent e abra o Team Foundation Server Administration Console.

Observe na console que algumas coisas mudaram, o serviço em execução é o TFSSERVICE do domínio PORTO, as URLS são do servidor antigo ainda. Observe que o Application Tier do TFS é o antigo ainda.

O próximo passo é inserir uma conta do domínio PORTO como administrador do TFS.

Em seguida vá em Schedule Backup e desative os backups.

Em seguida vá em Reporting Services Configuration Manager para trocar o banco de dados que você acabou de restaurar.

Agora você irá restaurar a chave de criptografia que você salvou nos passos anteriores.

Agora você irá remover o Team Foundation Server do servidor do domínio PORTO, isso mesmo remover para reinstalar.

Em seguida iremos reinstalar o Team Foundation Server com outra opção agora da instalação anterior no domínio PORTO. Primeiramente instale os binários do TFS.

Em seguida realize as configurações, na opção Application Tier Only.

Selecione o banco de dados de configuração da instância SQL do domínio PORTO.

Em seguida execute o comando tfsconfig settings /notificationurl: URL do servidor do domínio PORTO. No diretório \Program Files\Microsoft Team Foundation Server 12.0\Tools

Observe agora na console do TFS que houveram mudanças para o novo servidor. Inclusive no Application Tier.

Agora iremos configurar o Reports Services. Para alterar o banco de dados da instância antiga do domínio ESXLAB para a nova instância do domínio PORTO.

Altere a instância dessa próxima tela.

Altere as informação antigas da próxima tela também para a nova instância e URLS do Reporting Services.

Inicie os JOBS novamente

Abra a URL do Reports para confirmar que está funcionando.

O próximo passo é abrir a URL do TFS do domínio PORTO e verificar se está funcional e os projetos foram migrados corretamente.

Agora iremos realizar a alteração de domínio dos usuários. Lembre-se que para funcionar os nomes deverão ser idênticos entre os domínios, pois o comando irá apenas substituir o nome do domínio ESXLAB para PORTO.

Abra o prompt de comando como administrador no TFS do domínio PORTO.

Vá no diretório [Program Files\Microsoft Team Foundation Server 12.0\Tools e execute o comando TFSConfig Identities /change /fromdomain:ESXLAB /todomain:PORTO~

Pronto, migração concluída.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s