Sincronizar sites do IIS 6.0

por Faith A

Este guia rápido orientará você no processo de uso da Ferramenta de Implantação da Web para sincronizar um site de um computador de origem do IIS 6.0 com um computador de destino do IIS 6.0. É possível fazer isso efetuando push dos dados para um destino remoto ou efetuando pull dos dados de uma fonte remota. Este guia mostrará ambos os métodos, bem como uma opção a fim de usar um arquivo de pacote para não precisar instalar o Serviço do Agente de Implantação da Web (MsDepSvc ou “serviço de agente remoto”).

Quais sincronizações são possíveis usando a Ferramenta de Implantação da Web?

  • Push (sincronizar de uma fonte local para um destino remoto)
  • Pull (sincronizar de uma fonte remota para um destino local)
  • Sincronização independente (iniciar uma sincronização em um computador em que o destino e a fonte são remotos)
  • Sincronização local manual (criar um arquivo de pacote da fonte, copiá-lo para o destino e executá-lo localmente)

Pré-requisitos

Este guia tem os seguintes pré-requisitos:

  • .NET Framework 2.0 SP1 ou mais recente
  • Ferramenta de Implantação da Web 1.1

Observação: se você ainda não tiver instalado a Ferramenta de Implantação da Web, confira Como instalar a Ferramenta de Implantação da Web.

Parte 1 – Exibir as dependências do site

  1. Obtenha as dependências do site executando o seguinte comando:

    msdeploy -verb:getDependencies -source:metakey=lm/w3svc/1
    
  2. Analise a saída das dependências e procure mapas de script ou componentes instalados que estejam em uso pelo site. Por exemplo, se a autenticação do Windows estiver em uso pelo site, <dependency name="WindowsAuthentication" /> será exibido.

  3. Se o site estiver herdando mapas de script, eles não serão listados nas dependências e também será necessário analisá-los manualmente.

  4. Compile uma lista dos componentes necessários no destino.

Para obter etapas detalhadas sobre como analisar a saída de getDependencies, confira Como exibir dependências.

Parte 2 – Configurar o destino

  1. Analise a lista de dependências e instale-as no servidor de destino. Por exemplo, imagine que você tinha o seguinte em uso no site:

    • ASP.NET
    • Autenticação do Windows
    • Autenticação Anônima

    Com base nesta análise das dependências, você instalaria os componentes correspondentes no servidor de destino antes de executar a sincronização.

Parte 3 – Sincronizar o site com o destino

  1. Sempre faça backup dos servidores de destino e de origem. Mesmo que você esteja apenas realizando testes, isso permite restaurar facilmente o estado do servidor.

    iisback /backup /b PreWebDeploy
    
  2. Instale o serviço remoto na fonte ou no destino de acordo com sua intenção: efetuar pull dos dados de uma fonte remota ou efetuar push dos dados para um destino remoto.

  3. Inicie o serviço no servidor.

    net start msdepsvc
    
  4. Execute o comando a seguir para validar o que aconteceria se a sincronização fosse executada. O sinalizador -whatif não mostrará todas as alterações, mas apenas uma visualização otimista do que pode mudar se o processo ocorrer corretamente (por exemplo, ele não detectará erros em que não é possível gravar no destino).

    • Efetuando push para um destino remoto, executando no computador de origem (o argumento computerName identifica o computador de destino remoto).

      msdeploy -verb:sync -source:metakey=lm/w3svc/1 -dest:metakey=lm/w3svc/1,computername=Server1 -whatif > msdeploysync.log
      
    • Efetuando pull de uma fonte remota, executando no computador de destino (o argumento computerName identifica o computador de origem remoto).

      msdeploy -verb:sync -source:metakey=lm/w3svc/1,computername=Server1 -dest:metakey=lm/w3svc/1 -whatif > msdeploysync.log
      
  5. Depois de verificar a saída, execute o mesmo comando novamente sem o sinalizador -whatif:

    • Efetuando push para o destino remoto, executando no computador de origem

      msdeploy -verb:sync -source:metakey=lm/w3svc/1 -dest:metakey=lm/w3svc/1,computername=Server1 > msdeploysync.log
      
    • Efetuando pull de uma fonte remota, executando no computador de destino

      msdeploy -verb:sync -source:metakey=lm/w3svc/1,computername=Server1 -dest:metakey=lm/w3svc/1 > msdeploysync.log
      

{Opcional – Sincronizar o site com o destino usando um arquivo de pacote}

Se você não deseja usar o serviço remoto, use um pacote (arquivo compactado) como alternativa.

  1. Execute o seguinte comando no servidor de destino para criar um pacote da fonte do site:

    msdeploy -verb:sync  -source:metakey=lm/w3svc/1 -dest:package=c:\Site1.zip
    
  2. Copie o arquivo de pacote para o servidor de destino.

  3. Execute o seguinte comando no servidor de destino para validar o que aconteceria se a sincronização fosse executada:

    msdeploy -verb:sync -source:package=c:\Site1.zip -dest:metakey=lm/w3svc/1 -whatif > msdeploysync.log
    
  4. Depois de verificar a saída, execute o mesmo comando novamente sem o sinalizador whatif:

    msdeploy -verb:sync -source:package=c:\Site1.zip -dest:metakey=lm/w3svc/1 > msdeploysync.log
    

Agora você terminou de sincronizar o site. Para realizar a verificação, tente acessar o site no servidor de destino. Para obter ajuda ao solucionar problemas, confira Solução de problemas da Ferramenta de Implantação da Web.

Resumo

Você sincronizou um site de um servidor de origem do IIS 6.0 com um servidor de destino do IIS 6.0 exibindo as dependências, configurando o servidor de destino do IIS 6.0 e usando o Serviço do Agente de Implantação da Web ou um arquivo de pacote.