Pregunta

tiene un sitio web que publica eventos utilizando NServiceBus. El sitio se implementa utilizando MSDeploy. También tenemos la NServiceBus.exe que debe ejecutarse como un servicio de Windows para suscribirse a estos eventos, y nos gustaría desplegar eso también.

¿Hay alguna manera de empaquetar el servicio, así como la página web, de modo que se puede instalar también? ¿Es posible envasar por separado para que podamos implementarlo en otro servidor?

¿Algún consejo sobre dónde encontrar información sobre cómo hacer esto sería grande, como podemos hacer implementaciones automatizadas para el sitio web ahora.

¿Fue útil?

Solución

Hace poco hice esto utilizando MSDeploy, Phantom y Installutil.exe

, básicamente, sólo necesita modificar su clase instalador y elevar sus privilegios de servicio WMSVC remotas si es necesario.

Enlace al blog

Otros consejos

Lo que terminó haciendo fue la creación de una capa de 'controlador' que coordina las tareas de implementación, incluso uno que podría utilizar MSDeploy. Esencialmente, MSDeploy no es el más alto nivel de abstracción en nuestro sistema de despliegue.

Hemos elegido utilizar MSBuild para coordinar las tareas de despliegue de los elementos de un 'paquete'.

En nuestro proceso de despliegue, una aplicación Web implementada con MSDeploy es más que otro elemento de despliegue, al igual que es un servicio de Windows.

En toda la revelación, no hemos creado realmente tareas de implementación MSDeploy embargo, a pesar de que debería / caería muy bien en lo que ya hemos creado, como MSBuild invocaría el MSDeploy. Actualmente usamos tareas comunitarias MSBUILD de automatización de la implementación webapp, coordinado a través de MSBuild.

Se puede leer un poco más sobre la forma en que 'generalizada' nuestros despliegues a través de una entrada en el blog me llamaron " PANDA - empaquetado e implementación de automatización ".

Aquí está una MSDeploy Orden mar Línea I usar para sincronizar un archivedir que se crea a partir de una etapa posterior a la generación en mi archivo Windows Service.proj.

Se sincroniza de mi servidor de compilación a mi servidor de aplicaciones en una red diferente. Tengo pasos de generación antes y después de que inician y detienen los servicios en el servidor remoto. Usted debe envolver el script de PowerShell en un script VB debido a un error con PowerShell y MSDeploy. La opción -verbose es muy útil.

También tiene la secuencia de comandos VBScript y PS1 a continuación. Tenga cuidado con el sueño VB y el pre y tiempos de espera colocar MSDeploy.

msdeploy -verb:sync -source:archivedir=\\qa-xxxxx1.qa.lan\deployment\backups\FreddieMacDelivery\FreddieMacDelivery.zip,tempAgent='True',computerName=qa-xxxxx1.qa.lan,userName=QA\xxxxx,password=xxxx,authtype=NTLM,includeAcls='False' -dest:dirpath=\\qa-xxxxxx1.qa.lan\protk\Services\FreddieMacDelivery\1.4.1.test -useCheckSum -verbose -preSync:runCommand="cscript.exe c:\temp\stop_win_svc.vbs" -postSync:runCommand="c:\temp\start_win_svc.vbs",waitInterval=15000,waitAttempts=1

VB script:

Option Explicit
Dim oShell, appCmd,oShellExec
Set oShell = CreateObject("WScript.Shell")

appCmd = "powershell.exe -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -Command ""&c:/temp/Get_Win_SVC.ps1"" "

Set oShellExec = oShell.Exec(appCmd)

WScript.Sleep 1000
oShellExec.StdIn.Close()

script de PowerShell:

$username = 'QA\xxxxx'
$password = 'xxxxx'
$cred = New-Object System.Management.Automation.PSCredential -ArgumentList @($username,(ConvertTo-SecureString -String $password -AsPlainText -Force))

(Get-WmiObject  -computer qa-xxxx1.qa.lan  -Credential $cred Win32_Service -Filter "Name='ProTeck.FreddieMac.DeliveryService'")


$svc = (Get-WmiObject  -computer qa-xxxxx1.qa.lan  -Credential $cred Win32_Service -Filter "Name='ProTeck.FreddieMac.DeliveryService'") 

Write-Host  $svc

$svc.InvokeMethod("StartService", $null)


(Get-WmiObject  -computer qa-xxxxx1.qa.lan  -Credential $cred Win32_Service -Filter "Name='ProTeck.FreddieMac.DeliveryService'")> c:\temp\win_stat_post.txt
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top