2017-05-18 2 views
0

Ich verwende die Team Services von Visualstudio.com, um eine ASP.NET-Website für zwei Azure-VMs zu erstellen und bereitzustellen.VSTS Bereitstellung in einer Bereitstellungsgruppe von einer UNC-Freigabe

Ich habe einen Build, die nach Abschluss einer Freigabe an meine zwei Server in einem deployment group auslöst. Wenn Sie ein Deployment Group für Visual Studio Team Services konfigurieren, erstellen Sie einen Agenten, der standardmäßig als NT AUTHORITY\SYSTEM ausgeführt wird.

Wenn ich publish my build artifacts to Azure (die Option Server), dann funktioniert alles einwandfrei und Einsatz gelingt es sowohl mein VMS. Jedoch bei der Verwendung einer Datei-Drop ich die folgende Fehlermeldung erhalten:

The artifact directory does not exist: \\MACHINE1\drop\RRStore\20170517.20. It can happen if the password of the account NT AUTHORITY\SYSTEM is changed recently and is not updated for the agent.

Diese im Grunde sagen MACHINE2 nicht \\MACHINE1\drop aufgrund Berechtigungen zugreifen können. In Windows kann ich diesen Ordner problemlos aufrufen, aber da der Agent als NT AUTHORITY\SYSTEM ausgeführt wird, kann er nicht darauf zugreifen.

Ich möchte ein Filedrop benutzen, weil meine Website über 250MB ist (obwohl in der Zwischenzeit habe ich die ‚veröffentlichen, um Server‘ bin mit Option und die Bereitstellung von über Team Services.)

Ich bin unklar, wie Berechtigungen zu geben, Die Datei wird jedoch gelöscht, wenn der Agent als SYSTEM ausgeführt wird. Ich laufe als WORKGROUP und die Erlaubnis zu "Jeder" scheint nicht zu funktionieren.

Was ist der richtige Weg, um Zugang zu einem VSTS Drop-Ordnern zu konfigurieren, damit der Deployment Agent darauf zugreifen kann?

paar mögliche Optionen:

  • eine Domain einrichten (Ich habe versucht, dies zu tun, aber dann brauche ich eine neue Netzwerkschnittstelle und es klingt klunky)
  • Weiter Kompetenzteamservice unter Verwendung der Artefakte bereitstellen (oder reduzieren die Website-Größe!)
  • Speichern Sie in einem Speicherkonto, aber ich bin mir nicht sicher, wie Sie das konfigurieren.
  • Ausführen als ein anderes Benutzerkonto
+0

Ich kann dieses Problem nicht reproduzieren (Grant Lese-Berechtigung für alle), was sind Aufgaben Ihrer Release-Definition? Gibt es eine Run-on-Agent-Phase? Können Sie das Detail-Release-Protokoll auf dem OneDrive freigeben? –

Antwort

1

Ich habe ähnliche Probleme, wenn sie mit VSTS bereitstellen. Stattdessen entschied ich mich für:

  • Führen Sie VSTS-Agent auf der Bereitstellungsgruppe VM als lokaler Benutzer mit eingeschränktem Zugriff.
  • Nehmen Sie die Identität des Kontos in der Bereitstellungsgruppen-VM an, um den Zugriff auf den Ablageordner zu testen.
  • Speichern/Zwischenspeichern anderer Anmeldeinformationen, um ggf. auf den Ablageordner zugreifen zu können. (also die sensiblen Informationen bleiben auf der VM.)
  • Die zwischengespeicherten Anmeldeinformationen können ein anderes lokales Benutzerkonto auf dem Drop-Server für diesen Zweck gerade erstellt werden.
  • Gewähren Sie dem lokalen Benutzer Zugriff auf verschiedene Teile des Dateisystems, um die Zugriffsberechtigung für dieses Konto des VSTS-Agentendienstleisters explizit einzuschränken.

Dies sollte in den meisten Fällen funktionieren. In der Tat wird derselbe Weg in meinen VSTS-, Jenkins- und TFS-Instanzen verwendet. Dies sollte verhindern, dass Sie eine Domäne einrichten, um dieses Problem zu lösen.

Dies ist möglicherweise nicht die beste Vorgehensweise, aber zumindest sollte es Sie in die richtige Richtung bringen.

+0

Danke. Ich gab auf (ich war an meinem Limit, weil ich gelernt habe, wie man zum Abendessen stopft) und benutzte VSTS einfach online. Es dauert ungefähr eine Minute, um meine Version hochzuladen und herunterzuladen, aber das war der einfachste Weg –

Verwandte Themen