Question

Nous avons un site Web qui publie des événements en utilisant NServiceBus. Le site est déployé à l'aide msdeploy. Nous avons aussi le NServiceBus.exe qui devrait fonctionner comme un service Windows pour vous abonner à ces événements, et nous aimerions déployer aussi.

Est-il possible de conditionner le service ainsi que le site Web, de sorte qu'il peut être installé aussi bien? Est-il possible d'emballer séparément afin que nous puissions déployer sur un autre serveur?

Des conseils sur où trouver des informations sur la façon de le faire serait génial, car nous pouvons faire des déploiements automatisés pour le site maintenant.

Était-ce utile?

La solution

J'ai récemment fait cela en utilisant MSDeploy, Phantom et InstallUtil.exe

Vous venez essentiellement besoin de modifier votre classe d'installation et d'élever vos privilèges de service WMSVC à distance si nécessaire.

Lien vers le blog

Autres conseils

Qu'est-ce que nous avons fini par faire a été la création d'une couche « contrôleur » que les tâches de déploiement de coordonnées, même qui pourrait utiliser msdeploy. Essentiellement, msdeploy n'est pas le plus haut niveau d'abstraction dans notre système de déploiement.

Nous avons choisi d'utiliser MSBuild pour coordonner les tâches de déploiement d'éléments d'un « paquet ».

Dans notre processus de déploiement, une application Web déployée avec msdeploy est juste un autre élément de déploiement, tout comme un service Windows.

Dans la communication, nous avons pas réellement créé des tâches de déploiement msdeploy encore, mais il devrait / chuterait à bien à ce que nous avons déjà créé, comme MSBuild invoquerait la msdeploy. Nous utilisons actuellement des tâches communautaires MSBuild pour l'automatisation de déploiement webapp, coordonné par MSBuild.

Vous pouvez lire un peu plus sur la façon dont nous « généralisée » nos déploiements via un poste de blog, je n'appelé « PANDA - Emballage de déploiement et d'automatisation ".

Voici une msdeploy cmd ligne I utilisé pour synchroniser un repertoire_archive qui est créé à partir d'une étape de post-construction dans mon fichier Windows Service.proj.

Il est en cours de synchronisation de mon serveur de build à mon serveur d'applications sur un autre réseau. J'ai pré et étapes post construction qui commencent et arrêter les services sur le serveur distant. Vous devez envelopper le script Powershell dans un script vb en raison d'un bug avec Powershell et msdeploy. L'option -verbose est très utile.

J'ai aussi le script VBScript et ps1 ci-dessous. Soyez prudent avec le sommeil VB et le pré et les délais d'attente post 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 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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top