in C#

Sinc de Aplicações no IIS com Web Deploy (msdeploy)

O Web Deploy 3.0 é uma plataforma extremamente poderosa que permite diversas opções de instalações e configurações de aplicativos Web. image Através do Visual Studio é possível configurar diversos perfis de publicação de nossos aplicativos, podemos configurar a publicação em diversos ambientes, como: homologação, stage e produção. Exemplo de um perfil de publish no Visual Studio 2013: image Para o funcionamento do exemplo acima, o Web Deploy precisa estar instalado e em execução no servidor de destino, além disso, a porta (default 8172) utilizada pelo serviço deve estar configurada no firewall. Sincronizando IIS O Web Deploy possui diversos recursos, neste post vou explorar o seu uso para sincronizar um Web Site no IIS, entre um servidor de origem e um servidor de destino. Pré-requisitos (Instalando e configurando o Web Deploy)

  • .NET Framework 2.0 SP1 ou maior
  • Web Deployment Tool 1.1 ou maior

Após a instalação, o aplicativo geralmente fica no seguinte diretório:

C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe

Maneiras de Sincronizar com Web Deploy

  • Push (sincronizar de uma fonte local para um destino remoto)
  • Pull (sincronizar de uma fonte remota para o destino local)
  • Independent Sync (sincronizar entre uma fonte remota e um destino remoto)
  • Manual Local Sync (criar um package de um destino e executar ele localmente)

ComeçandoO primeiro passo para sincronizar Web Sites entre servidores é verificar as dependências do web site que será sincronizado, ex:

msdeploy -verb:getDependencies
-source:apphostconfig="Default Web Site"

Com este comando é possível analisar as dependências necessárias para o web site. Backup das configurações do IISUma das recomendações é sempre realizar backup das configurações do IIS, é possível realizar o backup das configurações através do seguinte comando do utilitário do IIS:

%windir%\system32\inetsrv\appcmd add backup "BackupConfigs1"

Após o backup, podemos sincronizar o web site entre os servidores: -whatIfPara validar o que acontecerá em um comando de sinc, existe um parâmetro que gerará um log das alterações que serão realizadas, sem realizar o sinc propriamente dito, funcionando como um exemplo de preview:

msdeploy -verb:sync -source:apphostconfig="Default Web Site"
 -dest:apphostconfig="Default Web Site",computername=ServidorDestino.com
-whatif > syncpreview.txt

Depois de validar o preview com as alterações que serão realizadas, podemos executar o sinc das diversas maneiras. Push(sincronizar de uma fonte local para um destino remoto)

msdeploy -verb:sync -source:apphostconfig="Default Web Site"
 -dest:apphostconfig="Default Web Site"
,computername=ServidorDestino.com

Pull(sincronizar de uma fonte remota para o destino local)

msdeploy -verb:sync -source:apphostconfig="Default Web Site"
, computername=ServidorOrigem.com
 -dest:apphostconfig="Default Web Site"

Independent Sync (sincronizar entre uma fonte remota e um destino remoto)

msdeploy -verb:sync -source:apphostconfig="Default Web Site"
, computername=ServidorOrigem.com
-dest:apphostconfig="Default Web Site"
, computername=ServidorDestino.com

Manual Local Sync (criar um package de um destino e executar ele localmente) Criando o Package

msdeploy -verb:sync  -source:apphostconfig="Default Web Site"
-dest:package=c:\packageSiteDefault.zip

Instalando o Package

msdeploy -verb:sync  -source:package= c:\packageSiteDefault.zip
–dest:apphostconfig="Default Web Site"

Com estes comandos é possível criar scripts que automatizam, garantem e facilitam o processo de deploy e sincronização entre diversos servidores em um farm. Espero que este post seja útil, estou a disposição para dúvidas, criticas e sugestões. Abs Rodolfo

  • Kleber E. Alvarenga

    Que de demais, não conhecia este programa…. Como posso baixa-lo?

    Kleber Alvarenga
    Consultor de Sistema ERP

  • http://www.rodolfofadino.com.br/ Rodolfo Fadino

    opa, Kleber, você pode instalar o Web Deploy por aqui: http://www.iis.net/downloads/microsoft/web-deploy

  • Kleber E. Alvarenga

    Muito Obrigado pelo retorno!! Vou baixar e usar-lo….

    Um abraço.

    Kleber Alvarenga
    Consultor de Sistema ERP