Implantar um aplicativo em um web farm/Sincronizar todos os computadores em um web farm

Esse exemplo demonstra como gravar um script de linha de comando para executar as seguintes tarefas no cenário de web farm:

  1. Implante um aplicativo de um desenvolvedor que forneceu um pacote em várias máquinas em um web farm.

    Implantar um novo pacote de aplicativos ou atualizar um aplicativo para uma versão mais recente em várias máquinas pode ser uma tarefa entediante. Um script que envia o pacote e executa a implantação nas máquinas remotas simplificará essa tarefa.

  2. Sincronize o conteúdo e a configuração em todos os computadores em um web farm a um único computador modelo.

    Aplicar diversas alterações em uma web farm exige que todas as alterações sejam aplicadas a todos os computadores exatamente da mesma maneira. Se todas as alterações que são necessárias estiverem no script, essa será uma tarefa simples. Caso contrário, ocorrerá o problema de como registrar e reproduzir todas as alterações em todos os computadores na Web farm. Outra solução é aplicar todas as alterações a um único computador e depois reaplicá-las em toda a web farm.

Este exemplo mostra como usar a ferramenta Web Deployment (MSDeploy) para implantar o pacote de aplicativos ou replicar o conteúdo e a configuração de um único servidor em todos os computadores no web farm. Esse exemplo funcionará com qualquer pacotes de aplicativos MSDeploy. É recomendável o Aplicativo comum de exemplo do Windows Server AppFabric, que foi criado para ser usado com exemplos do Windows Server AppFabric. Para encontrar esse pacote de aplicativos, vá até o arquivo <samples>\ Samples\Management\MultiMachineSyncAndDeploy \Code\CalculatorService.zip, onde <samples> é o caminho no qual você instalou os exemplos do AppFabric. O script pode ser facilmente modificado para atender às necessidades específicas, renomear o aplicativo implantado ou sincronizar somente um único site.

Observação

Os exemplos são fornecidos apenas para fins educacionais. Eles não devem ser usados em um ambiente de produção e não foram testados em um ambiente de produção. A Microsoft não dá suporte técnico para esses exemplos.

Pré-requisitos

Esta amostra precisa de um ou mais computadores que atendam aos seguintes requisitos:

  1. O Serviço de Agente Remoto da Ferramenta de Implantação da Web (também chamado Serviço de Agente de Implantação) deve estar instalado e em execução em todos os computadores. Por padrão, o AppFabric instala a Ferramenta Web Deployment, mas seu Serviço de agente remoto não é parte da instalação padrão. Para adicionar o Serviço de Agente Remoto à sua instalação:

    1. Abra o painel de controle Programas e Recursos, selecione Ferramenta Web Deployment e clique em Alterar.

    2. Quando solicitado, clique em Avançar e, na tela seguinte, clique em Alterar.

    3. Depois que a lista de recursos for exibida, certifique-se de que o Serviço de agente remoto esteja com a opção Será instalado no disco rígido local selecionada e conclua o assistente de configuração.

    4. Depois de concluído o assistente, inicie o serviço digitando net start msdepsvc em uma janela de comando. Se desejar que o serviço seja iniciado automaticamente sempre que o Windows inicia, digite sc config msdepsvc start=auto em uma janela de comando.

    Para saber mais sobre a instalação e a configuração da Ferramenta Web Deployment, ou para instá-la em um computador que não tenha o AppFabric instalado, consulte http://learn.iis.net/page.aspx/421/installing-the-web-deployment-tool/ (a página pode estar em inglês).

  2. Todos os computadores que serão modificados durante a sincronização devem permitir os Serviços da World Wide Web (HTTP) em seu firewall.

  3. Todos os computadores da web farm devem fazer parte de um domínio e a conta usada para sincronizar a farm deve ter privilégios administrativos em todos os computadores.

Se estiver usando um provedor personalizado, às vezes, poderá ser útil determinar se ele é reconhecido pelo Serviço de Agente Remoto. Há dois métodos para determinar quais provedores estão disponíveis.

  1. Usando o IIS - No Gerenciador do IIS, clique com o botão direito do mouse em um aplicativo, selecione Implantar e Exportar Aplicativo. Na caixa de diálogo Exportar Aplicativo, clique em Gerenciar Componentes. Na coluna Provedores, clique na última linha vazia e clique na seta para baixo. A lista de provedores disponíveis é exibida, incluindo todos os provedores personalizados que são reconhecidos pelo Serviço de Agente Remoto.

  2. Usando a linha de comando – insira MSDEPLOY.EXE em um prompt de comando na linha de comando da Ferramenta de Implantação da Web. Parte das informações exibidas serão os provedores personalizados disponíveis. Para obter informações sobre como instalar a Ferramenta de Implantação da Web, consulte Instalar a Ferramenta de Implantação da Web.

É possível modificar o script de exemplo para executar em um ambiente sem domínio. Para ler mais sobre as opções de autenticação da Ferramenta Web Deploy, consulte a opção authType em https://technet.microsoft.com/en-us/library/dd569001(WS.10).aspx (a página pode estar em inglês).

Localização do exemplo e arquivos

Todos os arquivos necessários para a execução do exemplo estão localizados em <samples>\Samples\Management\MultiMachineSyncAndDeploy\Code:

  • machines.txt

  • sync.cmd

  • syncOne.cmd

  • deployOne.cmd

Configurando e executando esse exemplo

Task1: implantar um pacote.

  1. Copie todos os arquivos de <samples>\Samples\Management\SyncConfigFromModelMachine\Code para o computador administrativo.

  2. Edite o arquivo machines.txt para conter os nomes de todos os computadores no farm que deseja modificar de uma vez. É necessário colocar um nome de computador por linha.

  3. Execute o comando sync.cmd -fromPackage <package file path>.

  4. Verifique se os arquivos de log não possuem erros. Cada computador terá seu próprio arquivo de log chamado sync-MACHINE.log, em que a parte MACHINE é substituída pelo nome do computador.

Task2: sincronizar a uma máquina modelo.

  1. Depois que todos os computadores em sua farm atenderem aos requisitos citados, será possível realizar as alterações de configuração do aplicativo ou site em um desses computadores. Chamaremos esse computador de "computador modelo".

  2. Depois que a configuração for feita, copie todos os arquivos de <samples>\Samples\Management\SyncConfigFromModelMachine\Code para o computador modelo.

  3. Edite o arquivo machines.txt para conter os nomes de todos os computadores no farm que deseja modificar de uma vez. É necessário colocar um nome de computador por linha.

  4. Execute o comando sync.cmd -fromLocalServer e insira Y para confirmar.

  5. Verifique se os arquivos de log não possuem erros. Cada computador terá seu próprio arquivo de log chamado sync-MACHINE.log, em que a parte MACHINE é substituída pelo nome do computador.

Noções básicas sobre esse exemplo

Primeiro, o script sync.cmd valida os argumentos da linha de comando que o usuário fornece:

if "%1"=="" goto print_syntax
if "%1"=="-fromLocalServer" goto sync_server
if "%1"=="-fromPackage" goto sync_package
goto print_syntax

Dependendo do argumento, o script deployOne.cmd ou syncOne.cmd é chamado uma vez para cada computador especificado no arquivo machines.txt. Ele faz isso usando os comandos for e start para chamar o script subsequente, de forma que a tarefa será executada simultaneamente nas máquinas de destino.

for /f %%i in ('type machines.txt') do (start deployOne.cmd %%i %2 %3 )

Ou

for /f %%i in ('type machines.txt') do ( start syncOne.cmd %%i %1) 

SyncOne.cmd/DeployOne.cmd é um script que usa a interface de linha de comando do Web Deploy, um comando chamado msdeploy.exe, para sincronizar um servidor web remoto do IIS com o pacote ou todo o servidor web do IIS na máquina local.

msdeploy.exe -verb:sync -source:package=%2 -dest:auto,computername=%1 %3

Ou

msdeploy.exe -verb:sync -source:webServer -dest:webServer,computername=%1 %2

O primeiro parâmetro é o nome do computador passado de sync.cmd e o caminho de arquivo do pacote é necessário para o script deployOne.cmd como o segundo parâmetro. O último e opcional parâmetro é qualquer parâmetro que você deseja passar para o msdeploy. Isso é útil se desejar passar um parâmetro adicional para o Web Deploy sem precisar modificar nenhum dos scripts. Um desses parâmetros adicionais deve ser -whatif:

sync.cmd -whatif

Quando o Web Deploy é executado com o parâmetro -whatif, ele verifica se há erros que podem ocorrem durante a execução do comando especificado sem executar realmente esse comando. Recomendamos que você execute o comando sync em um ambiente de produção com -whatif para ver se pode ocorrer algum erro. Tomar essa medida de precaução pode evitar um estado inconsistente.

Removendo esse exemplo

Para remover esse exemplo, exclua todos seus arquivos do computador admin/modelo.

Outros recursos

Para obter mais informações sobre a ferramenta Web Deployment, consulte http://learn.iis.net/page.aspx/346/web-deployment-tool/ (a página pode estar em inglês).

Para obter mais informações sobre como usar o Web Deploy para sincronizar dois servidores que executam o IIS 7.0, consulte http://learn.iis.net/page.aspx/446/synchronize-iis-70/ (a página pode estar em inglês).

Para saber mais sobre a instalação e configuração da ferramenta Web Deployment, consulte http://learn.iis.net/page.aspx/421/installing-the-web-deployment-tool/ (a página pode estar em inglês).

  2011-12-05