Implementación de una aplicación en una granja de servidores web/Sincronización de todos los equipos de una granja de servidores web
En este ejemplo se muestra el procedimiento para generar un script de línea de comandos con el fin de llevar a cabo las siguientes tareas en el escenario de granja de servidores web:
Implementación de una aplicación a partir de un paquete proporcionado por el programador en varios equipos de la granja de servidores web.
La implementación de un paquete de aplicaciones nuevas o la actualización de una aplicación a una versión más reciente en varios equipos puede resultar tediosa. Esta tarea se simplifica con un script que envía el paquete y realiza la implementación en los equipos remotos.
Sincronización del contenido y la configuración de todos los equipos de una granja de servidores web en un único equipo modelo.
Aplicar múltiples cambios a una granja de servidores web requiere que todos los cambios se apliquen en todos los equipos exactamente de la misma manera. Si todos los cambios necesarios están generados por scripts, esto es una tarea fácil. De lo contrario, presenta el problema de cómo registrar y reproducir todos los cambios en todos los equipos de la granja de servidores web. Otra solución es aplicar todos los cambios en un único equipo y, a continuación, replicarlos en toda la granja de servidores web.
En este ejemplo se muestra el uso de la herramienta de implementación web (MSDeploy) para implementar un paquete de aplicaciones o replicar el contenido y la configuración de un único servidor en todos los equipos de la granja de servidores web. Este ejemplo funciona con cualquier paquete de aplicaciones de MSDeploy. Sin embargo, es recomendable usar Aplicación común AppFabric de ejemplo, diseñada para trabajar con muestras de Microsoft AppFabric 1.1 para Windows Server. Para buscar este paquete de aplicaciones, navegue al archivo <ejemplos>\ Samples\Management\MultiMachineSyncAndDeploy \Code\CalculatorService.zip, donde <ejemplos> representa la ruta de acceso en la que instaló los ejemplos de AppFabric. Este script se puede modificar fácilmente para satisfacer necesidades específicas, por ejemplo, cambiar el nombre de la aplicación implementada o sincronizar un solo sitio.
Nota
Los ejemplos se proporcionan únicamente con fines de aprendizaje. No están concebidos para su uso en un entorno de producción ni se han probado en este tipo de entorno. Microsoft no proporciona asistencia técnica para estos ejemplos.
Requisitos previos
Este ejemplo necesita dos o más equipos que cumplan los siguientes requisitos:
El servicio de agente remoto de la Herramienta de implementación web (también conocido como servicio de agente de implementación) debe estar instalado y en ejecución en todos los equipos. De forma predeterminada, AppFabric instala la herramienta de implementación web, pero el servicio de agente remoto no forma parte de la instalación predeterminada. Para agregar el servicio de agente remoto a la instalación:
En el Panel de control, abra Programas y características, seleccione Herramienta de implementación web y, a continuación, haga clic en Cambiar.
Cuando se le solicite, haga clic en Siguiente y, en la pantalla siguiente, haga clic en Cambiar.
Una vez se visualiza la lista de características, asegúrese de que el servicio de agente remoto tiene marcada la opción Se instalará en la unidad de disco duro local y, a continuación, finalice el asistente para la instalación.
Una vez finalizado el asistente, inicie el servicio escribiendo
net start msdepsvc
en una ventana de comandos. Si desea que el servicio se inicie automáticamente cada vez que se inicie Windows, escribasc config msdepsvc start=auto
en una ventana de comandos.
Para obtener más información sobre la instalación y la configuración de la herramienta de implementación web o para instalarla en un equipo que no tiene AppFabric instalado, vea http://learn.iis.net/page.aspx/421/installing-the-web-deployment-tool/ (en inglés).
Todos los equipos que se modificarán durante la sincronización deben permitir los Servicios de World Wide Web (HTTP) a través del firewall.
Además, todos los equipos de la granja de servidores web deben formar parte de un dominio y la cuenta que se usa para sincronizar la granja debe tener privilegios administrativos en todos los equipos.
Si se usa un proveedor personalizado, en ocasiones puede resultar útil determinar si lo reconoce el servicio de agente remoto. Existen dos métodos para determinar qué proveedores están disponibles.
Mediante IIS: desde el Administrador de IIS, puede hacer clic con el botón secundario del mouse en una aplicación, seleccionar Implementar y, a continuación, seleccionar Exportar aplicación. En el cuadro de diálogo Exportar aplicación, haga clic en Administrar componentes. En la columna Proveedores, haga clic en la última línea vacía y, a continuación, en la flecha hacia abajo. Aparecerá la lista de proveedores disponibles, incluidos los proveedores personalizados que reconozca el servicio de agente remoto.
Mediante el símbolo del sistema:: escriba MSDEPLOY.EXE en un símbolo del sistema en la línea de comandos de la herramienta de implementación web. Parte de la información mostrada serán los proveedores personalizados disponibles. Para obtener información sobre cómo instalar la herramienta de implementación web, consulte Instalación de la Herramienta de implementación web.
Es posible modificar el script de ejemplo para ejecutarlo en un entorno sin dominio. Para obtener más información acerca de las opciones de autenticación de la herramienta de implementación web, vea la opción authType en https://technet.microsoft.com/en-us/library/dd569001(WS.10).aspx.
Ubicación y archivos de ejemplo
Todos los archivos necesarios para ejecutar este ejemplo se encuentran en <ejemplos>\Samples\Management\MultiMachineSyncAndDeploy\Code:
machines.txt
sync.cmd
syncOne.cmd
deployOne.cmd
Configuración y ejecución de este ejemplo
Tarea 1: implementar un paquete.
Copie todos los archivos de <ejemplos>\Samples\Management\SyncConfigFromModelMachine\Code en el equipo administrativo.
Edite el archivo machines.txt para que contenga los nombres de los demás equipos de la granja que desea modificar en un único lote. Debe escribir un nombre de equipo en cada línea.
Ejecute el comando
sync.cmd -fromPackage <package file path>
.Compruebe si existen errores en los archivos de registro. Cada equipo tendrá su propio archivo de registro, denominado sync-MACHINE.log, donde la parte MACHINE se sustituye por el nombre de ese equipo.
Tarea 2: sincronizar con un equipo modelo.
Una vez que todos los equipos de la granja cumplan los requisitos anteriores, puede empezar a realizar los cambios en la configuración de aplicación o sitio en uno de los equipos. Nos referiremos a ese equipo como "equipo modelo".
Una vez realizada la configuración, copie todos los archivos de <ejemplos>\Samples\Management\SyncConfigFromModelMachine\Code en el equipo modelo.
Edite el archivo machines.txt para que contenga los nombres de los demás equipos de la granja que desea modificar en un único lote. Debe escribir un nombre de equipo en cada línea.
Ejecute el comando
sync.cmd -fromLocalServer
y escriba Y para confirmar.Compruebe si existen errores en los archivos de registro. Cada equipo tendrá su propio archivo de registro, denominado sync-MACHINE.log, donde la parte MACHINE se sustituye por el nombre de ese equipo.
Descripción de este ejemplo
El script sync.cmd primero valida los argumentos de la línea de comandos que proporciona el usuario:
if "%1"=="" goto print_syntax
if "%1"=="-fromLocalServer" goto sync_server
if "%1"=="-fromPackage" goto sync_package
goto print_syntax
Según el argumento, el script llama al script deployOne.cmd o syncOne.cmd una sola vez para cada equipo especificado en el archivo machines.txt. Para ello, usa los comandos for y start con el fin de invocar el script subsiguiente para que la tarea se realice simultáneamente en los equipos de destino.
for /f %%i in ('type machines.txt') do (start deployOne.cmd %%i %2 %3 )
O bien
for /f %%i in ('type machines.txt') do ( start syncOne.cmd %%i %1)
SyncOne.cmd/DeployOne.cmd representa un script que usa la interfaz de la línea de comandos de la herramienta de implementación web, el comando denominado msdeploy.exe, para sincronizar un servidor web de IIS remoto con el paquete o el servidor web de IIS completo en el equipo local.
msdeploy.exe -verb:sync -source:package=%2 -dest:auto,computername=%1 %3
O bien
msdeploy.exe -verb:sync -source:webServer -dest:webServer,computername=%1 %2
El primer parámetro corresponde al nombre del equipo que se pasó de sync.cmd, y el script deployOne.cmd necesita la ruta de acceso al archivo de paquetes como segundo parámetro. El último parámetro (opcional) corresponde a cualquier parámetro que se desea pasar a msdeploy. Esto resulta útil si desea proporcionar un parámetro adicional a la herramienta de implementación web sin necesidad de modificar los scripts. Un parámetro adicional de este tipo puede ser -whatif:
sync.cmd -whatif
Si la herramienta de implementación web se ejecuta con el parámetro -whatif, comprueba la existencia de errores que puedan tener lugar durante la ejecución del comando especificado, sin ejecutar realmente el comando. Se recomienda ejecutar el comando sync en un entorno de producción con -whatif para ver si pueden producirse errores. Este paso preventivo puede evitar que se acabe en un estado incoherente.
Eliminación de este ejemplo
Para quitar este ejemplo, elimine todos sus archivos del equipo modelo o el equipo administrativo.
Otros recursos
Para obtener más información acerca de la herramienta de implementación web, vea http://learn.iis.net/page.aspx/346/web-deployment-tool/ (en inglés).
Para obtener más información acerca del uso de la herramienta de implementación web para sincronizar dos servidores que ejecutan IIS 7.0, vea http://learn.iis.net/page.aspx/446/synchronize-iis-70/ (en inglés).
Para obtener más información acerca de la instalación y configuración de la herramienta de implementación web, vea http://learn.iis.net/page.aspx/421/installing-the-web-deployment-tool/ (en inglés).
2012-03-05