Distribuire un'applicazione in una Web Farm/Sincronizzare tutti i computer di una Web Farm

In questo esempio viene illustrato come scrivere uno script della riga di comando per effettuare le seguenti attività in uno scenario Web farm:

  1. Distribuire un'applicazione da un pacchetto fornito dagli sviluppatori su più computer in una Web farm.

    La distribuzione di un nuovo pacchetto di applicazione o l'aggiornamento a una versione più recente tra più computer può risultare un'attività noiosa. Uno script che invia il pacchetto ed esegue la distribuzione sui computer remoti consentirà di semplificare questa attività.

  2. Sincronizzare il contenuto e la configurazione su tutti i computer di una Web farm con un computer a modello singolo.

    L'applicazione di più modifiche a una Web farm richiede che tutte le modifiche vengano applicate a tutti i computer esattamente nello stesso modo. Se per tutte le modifiche necessarie sono disponibili degli script, l'operazione è semplice. In caso contrario, il problema consiste nel come registrare e riprodurre tutte le modifiche su tutti i computer della Web farm. Un'altra soluzione consiste nell'applicare tutte le modifiche a un solo computer e quindi replicarlo nella Web farm.

In questo esempio viene mostrato come utilizzare Strumento di distribuzione Web (MSDeploy) per distribuire un pacchetto di applicazione o per replicare il contenuto e la configurazione di un singolo server su tutti i computer della Web farm. L'esempio funziona con qualsiasi pacchetto di applicazione MSDeploy. Si consiglia di utilizzare l'Applicazione di esempio di Windows Server AppFabric comune, creata per l'utilizzo con gli esempi di Windows Server AppFabric. Per individuare questo pacchetto di applicazione, passare al file <samples>\ Samples\Management\MultiMachineSyncAndDeploy \Code\CalculatorService.zip, dove <samples> è il percorso nel quale sono stati installati gli esempi di AppFabric. Lo script può essere facilmente modificato per soddisfare esigenze specifiche, ad esempio, per rinominare l'applicazione distribuita o per sincronizzare solo un singolo sito.

Nota

Gli esempi vengono forniti solo per scopi didattici. Non sono destinati a essere utilizzati in un ambiente di produzione e non sono stati testati in un ambiente di produzione. Microsoft non fornisce supporto tecnico per questi esempi.

Prerequisiti

In questo esempio sono necessari due o più computer che soddisfino i seguenti requisiti:

  1. Servizio agente remoto (denominato anche Servizio Agente distribuzione Web) dello strumento di distribuzione Web installato e in esecuzione su tutti i computer. Per impostazione predefinita, AppFabric installa lo strumento di distribuzione Web, ma il relativo Servizio agente remoto non fa parte dell'installazione predefinita. Per aggiungere Servizio agente remoto all'installazione:

    1. Aprire il Pannello di controllo Programmi e funzionalità, selezionare Strumento di distribuzione Web, quindi fare clic su Modifica.

    2. Quando viene richiesto, fare clic su Avanti e nella schermata successiva fare clic su Modifica.

    3. Una volta visualizzato l'elenco delle funzionalità, assicurarsi che per Servizio agente remoto sia contrassegnata l'opzione Verrà installata sul disco rigido locale, quindi completare l'installazione guidata.

    4. Dopo aver completato la procedura guidata, avviare il servizio digitando net start msdepsvc in una finestra di comando. Se si desidera che il servizio venga avviato automaticamente ogni volta che si avvia Windows, digitare sc config msdepsvc start=auto in una finestra di comando.

    Per ulteriori informazioni sull'istallazione e sulla configurazione di Strumento di distribuzione Web o per installarlo su un computer su cui non è stato installato AppFabric, fare riferimento a http://learn.iis.net/page.aspx/421/installing-the-web-deployment-tool/.

  2. Tutti i computer che verranno modificati durante la sincronizzazione devono consentire Servizi Web (HTTP) tramite il proprio firewall.

  3. Tutti i computer di una Web farm devono appartenere a un dominio e l'account utilizzato per sincronizzare la farm deve disporre dei privilegi amministrativi su tutti i computer.

Se si utilizza un provider personalizzato, può talvolta essere utile determinare se viene riconosciuto da Servizio agente remoto. Esistono due metodi per stabilire quali sono i provider disponibili.

  1. Tramite IIS - Da Gestione IIS fare clic con il pulsante destro del mouse su un'applicazione, scegliere Distribuisci, quindi Esporta applicazione. Nella finestra di dialogo Esporta applicazione fare clic su Gestisci componenti. Nella colonna Provider fare clic sull'ultima riga vuota, quindi sulla freccia GIÙ. Verrà visualizzato l'elenco di tutti i provider disponibili, inclusi gli eventuali provider personalizzati che vengono riconosciuti da Servizio agente remoto.

  2. Dalla riga di comando – In una finestra del prompt dei comandi immettere MSDEPLOY.EXE nella riga di comando dello strumento di distribuzione Web. Tra le informazioni visualizzate saranno presenti anche i provider personalizzati disponibili. Per informazioni sull'installazione dello strumento, vedere Installare lo strumento di distribuzione Web.

È possibile modificare lo script di esempio in modo che venga eseguito in un ambiente non di dominio. Per ulteriori informazioni sulle opzioni di autenticazione di Strumento di distribuzione Web, vedere l'opzione authType in https://technet.microsoft.com/en-us/library/dd569001(WS.10).aspx.

Percorso e file di esempio

Tutti i file necessari per l'esecuzione di questo esempio si trovano in <samples>\Samples\Management\MultiMachineSyncAndDeploy\Code:

  • machines.txt

  • sync.cmd

  • syncOne.cmd

  • deployOne.cmd

Installazione ed esecuzione dell'esempio

Attività 1: distribuire un pacchetto.

  1. Copiare tutti i file da<samples>\Samples\Management\SyncConfigFromModelMachine\Code nel computer amministrativo.

  2. Modificare il file machines.txt in modo che contenga i nomi di tutti gli altri computer della farm che si desidera modificare in un unico batch. È necessario collocare un nome computer per riga.

  3. Eseguire il comando sync.cmd -fromPackage <package file path>.

  4. Ricercare gli errori nei file di registro. Ciascun computer disporrà di un proprio file di registro sync-MACHINE.log in cui la parte MACHINE viene sostituita dal nome del computer.

Attività 2: eseguire la sincronizzare con un computer modello.

  1. Una volta che tutti i computer della farm soddisfano i requisiti precedenti, è possibile iniziare ad apportare modifiche all'applicazione a alla configurazione del sito a uno di questi computer. Tale computer viene denominato "computer modello".

  2. Dopo aver completato la configurazione, copiare tutti i file da <samples>\Samples\Management\SyncConfigFromModelMachine\Code al computer modello.

  3. Modificare il file machines.txt in modo che contenga i nomi di tutti gli altri computer della farm che si desidera modificare in un unico batch. È necessario collocare un nome computer per riga.

  4. Eseguire il comando sync.cmd -fromLocalServer e immettere Y per confermare.

  5. Ricercare gli errori nei file di registro. Ciascun computer disporrà di un proprio file di registro sync-MACHINE.log in cui la parte MACHINE viene sostituita dal nome del computer.

Spiegazione dell'esempio

Lo script sync.cmd convalida prima gli argomenti della riga di comando forniti dall'utente:

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

A seconda dell'argomento, viene chiamato lo script deployOne.cmd o syncOne.cmd una sola volta per ciascun computer specificato nel file machines.txt. Questa operazione viene eseguita utilizzando il comando for e il comando start per richiamare lo script successivo, in modo che l'attività venga effettuata simultaneamente nei computer di destinazione.

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

Oppure

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

SyncOne.cmd/DeployOne.cmd è uno script che utilizza l'interfaccia della riga di comando di Strumento di distribuzione Web, un comando denominato msdeploy.exe, per sincronizzare un server Web IIS remoto con il pacchetto o l'intero server Web IIS sul computer locale.

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

Oppure

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

Il primo parametro è il nome del computer passato da sync.cmd e il percorso del file del pacchetto è richiesto dallo script deployOne.cmd come secondo parametro. L'ultimo parametro (facoltativo) è qualsiasi parametro che si desidera passare a msdeploy. Tale operazione è utile se si desidera passare un parametro aggiuntivo a Strumento di distribuzione Web senza dover modificare alcuno script. Tale parametro aggiuntivo potrebbe essere -whatif:

sync.cmd -whatif

Quando Strumento di distribuzione Web è in esecuzione con il parametro -whatif, viene effettuata una verifica relativa a tutti gli errori che si potrebbero verificare durante l'esecuzione del comando specificato senza eseguire realmente tale comando. È consigliabile eseguire il comando sync in un ambiente di produzione con -whatif per controllare se si verificano errori. L'adozione di questa precauzione può impedire uno stato incoerente.

Rimozione dell'esempio

Per rimuovere questo esempio, eliminarne tutti i file dal computer modello/admin.

Altre risorse

Per ulteriori informazioni su Strumento di distribuzione Web, vedere http://learn.iis.net/page.aspx/346/web-deployment-tool/.

Per ulteriori informazioni sull'utilizzo di Strumento di distribuzione Web per sincronizzare due server che eseguono IIS 7.0, vedere http://learn.iis.net/page.aspx/446/synchronize-iis-70/.

Per ulteriori informazioni sull'installazione e sulla configurazione di Strumento di distribuzione Web, vedere http://learn.iis.net/page.aspx/421/installing-the-web-deployment-tool/.

  2011-12-05