Сценарии развертывания управления TFS Lab

Я пытаюсь настроить стандартную лабораторную среду с TFS 2012, используя рабочий процесс Build-Deploy-Test. Я настраиваю тестовый контроллер и тестовые агенты, но когда рабочий процесс LabManagement начинает выполняться, я получаю исключение при выполнении операции RunDeploymentTask

Initial Property Values
BuildLocation = \\S0503TFS2T\TFSPlayground\ConsoleApplicationBuild\ConsoleApplicationBuild_20121210.23
DeploymentScriptDetails = agent1 | "$(BuildLocation)\Deploy.bat" $(BuildLocation) | c:\Env
LabEnvironmentUri = vstfs:///LabManagement/LabEnvironment/4
MaxWaitTime = 00:30:00
ThrowOnError = True
UseRoleForDeployment = True
Deployment Task Logs for Machine: win7testagent1
 Access is denied
 Exception Message: Team Foundation Server could not complete the deployment task for machine 'win7testagent1', script '"\\S0503TFS2T\TFSPlayground\ConsoleApplicationBuild\ConsoleApplicationBuild_20121210.23\Deploy.bat"', arguments '\\S0503TFS2T\TFSPlayground\ConsoleApplicationBuild\ConsoleApplicationBuild_20121210.23' and working directory 'c:\Env'. (type LabDeploymentProcessException)
Exception Stack Trace: 
Server stack trace: 
   at Microsoft.TeamFoundation.Lab.Workflow.Activities.RunDeploymentTask.ExecuteDeploymentTask.RunCommand(AsyncState state)
   at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)
   at System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg, IMessageSink replySink)

Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.EndInvokeHelper(Message reqMsg, Boolean bProxyCase)
   at System.Runtime.Remoting.Proxies.RemotingProxy.Invoke(Object NotUsed, MessageData& msgData)
   at System.Action`1.EndInvoke(IAsyncResult result)
   at Microsoft.TeamFoundation.Lab.Workflow.Activities.RunDeploymentTask.ExecuteDeploymentTask.EndExecute(AsyncCodeActivityContext context, IAsyncResult result)
   at System.Activities.AsyncCodeActivity.CompleteAsyncCodeActivityData.CompleteAsyncCodeActivityWorkItem.Execute(ActivityExecutor executor, BookmarkManager bookmarkManager)

По-видимому, это проблема безопасности, которую я не могу преодолеть. Вот как MSDN объясняет этот процесс:

Рабочий процесс build-deploy-test начинает сборку, а затем получает сценарии развертывания. Определение сборки копирует файлы сборки в место размещения. Рабочий процесс запускает каждый сценарий развертывания в рабочем каталоге конкретной машины или роли компьютера, которой назначен сценарий. Каждый сценарий развертывания извлекает файлы сборки из места размещения. Каждый сценарий развертывания копирует или устанавливает указанные файлы сборки на компьютеры в лабораторной среде.

В этот момент проблема обнаруживается - рабочий процесс запускает каждый сценарий развертывания в рабочем каталоге конкретного компьютера.

Обе машины находятся в одном домене. Пользователь, который запускает службу сборки, также находится в группе администраторов на удаленной машине. Я даже поделился удаленной папкой, где рабочий процесс должен копировать файлы / сценарии со всеми в сети, но опять не повезло.

Я делаю что-то глупое, что сводит меня с ума - любая помощь или мысли очень ценятся!

Бест, Радо

2 ответа

Вы можете попробовать проверить%ErrorLevel% на последнем скрипте bat. Я встретил ту же ошибку, и оказалось, что эта ошибка была вызвана кодом завершения robocopy, который возвращает 1, когда копия успешна. Я установил код ошибки на 0, проблема была исправлена.

Следующее решение может решить вашу проблему.

Шаги: Создайте локальную учетную запись на следующем сервере: учетная запись службы локальной лаборатории - tfslab

  1. Тестовый сервер tfs: создайте локальную учетную запись tfslab. Также настройте tfslab как учетную запись службы лаборатории в консоли настройки тестового контроллера

  2. Сервер тестового агента tfs: создайте локальную учетную запись tfslab и добавьте tfslab в локальную группу администраторов. Также обновите службу агента тестирования Visual Studio и службу агента Visual Studio Lab, чтобы она работала как tfslab.

  3. Сервер папок tfs drop: создайте локальную учетную запись tfslab. И добавьте разрешение на чтение общего ресурса в папку TFS.

Подробности обсуждения смотрите здесь.

Другие вопросы по тегам