2017-11-27 4 views
0

Ich richte eine Test-Pipeline mit VSTS ein und jetzt arbeiten meine Builds mit einer Azure-VM als Build-Agent, den ich auch auf dieser Maschine bereitstellen möchte. Ich habe versucht, die Windows File Copy- und IIS-Bereitstellungstasks aber understand this isn't a very good solution for security reasons zu verwenden. Daher wäre es am besten, den Build/Release-Agent auf dem Computer zum Kopieren der Artefakte in die Azure-basierte VM zu verwenden und lokal zu implementieren seine IIS-Installation?VSTS: Bereitstellen auf Azure-basierter VM

Antwort

1

Ich schlage vor, dass Sie die Bereitstellung Ihrer Anwendung auf Ihrem Build-Agent nicht unbedingt überdenken. Dies macht es extrem schwierig, Probleme aufgrund fehlender DLLs oder Dateien zu finden, da der Build-Server alles hat. Ich schlage vor, entweder eine andere VM zu erstellen, um Azure PaaS für Web-Anwendungen zu implementieren oder zu nutzen.

Mit all dem gesagt, weil Sie lokal auf der gleichen VM arbeiten, können Sie einfach die Copy Files Aufgabe verwenden, um die Dateien dorthin zu verschieben, wo sie sein müssen. Um die Anwendung "bereitzustellen", können Sie einfach die Ausgabe der Website in das IIS-Verzeichnis kopieren.

VSTS Copy Files task

Eine andere Möglichkeit wäre, ein Powershell-Skript zu erstellen, das Setup würde, konfigurieren und die Anwendung auf dem lokalen Computer bereitstellen. In diesem Fall können Sie einfach die PowerShell-Aufgabe nutzen.

VSTS PowerShell task

1

Die Quelle (Get Quellen Abschnitt in Build-Definition) Download wird Agent automatisch während des Build zu bauen, so dass Sie die Dateien auf diesem Computer über die Windows-Dateikopie Aufgabe nicht kopieren müssen der einfache Workflow, ist, dass:

  1. hinzufügen NuGet Aufgabenpakete wiederherstellen
  2. Visual Studio Build-Task (MSBuild Argumente: /p:SkipInvalidConfigurations=true /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageLocation="$(build.artifactstagingdirectory)\\web.zip" /P:PackageTempRootDir="") hinzufügen
  3. hinzufügen WinRM-IIS Web App Deployment-Aufgabe: (Web Deploy-Paket: $(Build.ArtifactStagingDirectory)\web.zip)

Wie virusstorm gesagt, dass Sie Dateien in anderen Pfaden auf dieser Maschine durch Kopieren von Dateien Aufgabe kopieren können.

Auf der anderen Seite wird das Artefakt standardmäßig auf den Zielcomputer heruntergeladen, wenn Sie das Release verwenden, und Sie können Deployment groups in Betracht ziehen, wenn der Bereitstellungscomputer nicht mit dem Build Agent-Computer übereinstimmt.

Verwandte Themen