Fala pessoal,
Eu estou precisando montar uma solução para um cliente que temos que fazer o deploy automático de um site usando o Team Build. Existem milhares de posts explicando o procedimento de como usar o Team Build e o Web Deploy para fazer isso, mas como sempre, cada situação tem sua peculiaridade, essa não seria diferente.
Na situação atual nós temos que fazer o deploy de um site que foi criado usando o WebSite project do Visual Studio e por isso, várias da facilidades que teriamos com uma Web Application foram por água abaixo, obrigando a realizar um procedimento bem diferente do que temos publicado por aí.
Vamos primeiro aos desafios:
1 – Por utilizar o WebSite project, nós não temos um arquivo do vb.proj ou cs.proj, que já contém algumas definições de build e agrupa todos os projetos que devem ser compilados para que o site funcione corretamente.
2 – Precisamos fazer o controle do web.config por ambiente, e para variar, como não é uma WebApplication, a funcionalidade do WebConfigTransformation também não está disponível, nos obrigando a fazer esse procedimento na mão.
3 – Algumas máquinas de deploy não estão no mesmo dominio nem rede, o que complica um pouco mais o modelo de passagem do pacote do servidor de Build para as máquinas onde deveremos realizar o Deploy.
Vamos a solução proposta e aos poucos vou publicando um artigo para cada um dos passos descritos.
Preparando o ambiente:
Para que tudo funcione precisaremos ter instalado no nosso ambiente:
- 1 servidor de Build (preferencialmente uma máquina separada do servidor de aplicação do TFS)
- 1 servidor de homologação
- 1 servidor de produção
Para os servidores de homologação e produção, precisaremos ter instalado o IIS 7 ou superior, Web Deployment Kit 2.1 ou superior, SO Windows 2008 Server (essa foi a configuração que eu usei no meu ambiente de teste).
Passos para a solução:
1 – Primeiro vamos configurar uma Build Definition que pelo menos compile o WebSite com todos os pré-requisitos que precisamos e depois faremos uma cópia manual desses arquivos para o IIS e ver se o site está funcionando como deveria
2 – Sabendo que nosso modelo de compilação está funcionando, vamos começar a realizar o deploy dessa compilação no IIS. Para isso iremos customizar um processo de build que contenham as tarefas de Web Deploy e faremos o deploy automático
3 – Para finalizar, vamos criar o nosso web.config transformation. Iremos criar mais uma tarefa customizada para realizar essa atividade.
4 – Por ultimo, alguns pontos de verificação e modelos que talvez você tenham que implementar para comunicação entre as máquinas em dominios diferentes para a passagem do pacote de deploy.
Depois disso tudo, teremos o nosso deploy automático com web.config transformation em Website projects!
Qualquer dúvida, deixem seus comentários que irei ter o maior prazer em responder.
Até a próxima.
Claudio Leite
Claudio Leite é consultor de ALM da Lambda3, Visual Studio ALM Ranger, PSD, PSM I e PSM II. Graduado em Ciência da Computação pela Universidade Católica de Petrópolis, MBA e POS-MBA em Gestão de Projetos pela Fundação Getúlio Vargas. Twitter: @claudiobernardo