Сценарии развертывания шаблона TFS2012 LabDefault.11 завершаются неудачно с «Team Foundation Server не удалось выполнить задачу развертывания»

У меня проблемы с безопасностью управления лабораторией и стандартных сред.

У меня установлено обновление 2 TFS2012 в моем домене «DevDomain». У меня есть также отдельная машина сборки / лаборатории в DevDomain, на которой установлены контроллер сборки, агенты сборки и тестовый контроллер для одной и той же коллекции CollectionA.

Автоматизированные сборки работают просто отлично.

У меня есть целевые компьютеры для развертывания в «DevDomain» и «TestDomain» (подробнее об этом позже).

Чтобы перейти на следующий уровень, я хочу теперь автоматически развернуть программное обеспечение, созданное агентом сборки TFS, для тестирования машин; В частности, я хочу, чтобы скрипт развертывания удалил существующий продукт, скопировал обновленный установщик на целевой ПК и затем установил его.

Моей первой попыткой было определить стандартную среду в моем «DevDomain» и заставить часть развертывания лабораторной сборки работать в том же домене.

Это сработало. Вот что я сделал;

Автоматическая сборка (с использованием процесса DefaultTemplate.xaml) создает файл MSI, который я хочу использовать для развертывания, и сценарий PowerShell, который я хочу запустить для организации развертывания. (скрипт просто пытается запустить MSI через msiexec для удаления, скопировать новую версию локально, а затем запустить ее через msiexec для установки новой копии). Автоматическая сборка успешно создает оба этих артефакта и помещает их в определенную общую папку TFS.

Для этого у меня есть:

Создана новая стандартная лабораторная среда с одним компьютером (роль клиента рабочего стола)Менеджер лаборатории успешно развернул агент на этом ПКагент работает в интерактивном режиме и показывает его онлайн.Создано новое определение сборки с использованием рабочего процесса LabDefaultTemplate.11.xaml.ссылался на вышеупомянутую лабораторию в конфигурацииссылается на последний вывод автоматической сборки в конфигурацииуказал выходной сценарий PowerShell для сборки (с помощью макроса $ (BuildLocation).

На этой вкладке развертывания сборки указан следующий сценарий, который должен быть запущен на компьютере в лаборатории с ролью «Desktop Client»:

cmd /c powershell.exe "$(BuildLocation)\DeployGuiToLabWorkstation.ps1" "$(BuildLocation)"

Это работает.

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

Проблемы начинаются при попытке развернуть на машине в другом домене Теперь, чтобы сделать это более реалистичным, мне теперь нужно определить стандартную лабораторную среду для моих машин QA, которые находятся в другой области; "TestDomain".

Домен «TestDomain» имеет доверительные отношения с доменом «DevDomain». Естьнет взаимное доверие между «DevDomain» и «TestDomain»

Опять же, лабораторный центр менеджера тестов определил это ОК и развернул агент, и агент сообщил о себе онлайн моему контроллеру тестирования.

Теперь, когда я изменяю лабораторную сборку для ссылки на новую стандартную среду (на «TestDomain»), развертывание завершается с этой ошибкой;

Exception Message: Team Foundation Server could not complete the deployment task for
machine '10.7.70.71', script 'cmd' and arguments '/c copy \\*buildmachine*
\TFS_Drop\...\DeployGuiToWorkstation.ps1 C:\GuiDeploy'. (type LabDeploymentProcessException)

Чтобы диагностировать это, я изменил сценарий лабораторного развертывания:

"cmd /c powershell whoami"

И в соответствии с журналами процесс запускается как «nt полномочия \ система», а не как учетная запись лабораторной среды, указанной для агента тестирования.

Это объясняет ошибку скрипта; PowerShell на целевом ПК не может получить доступ к общему ресурсу TFS, но так как эта учетная запись является учетной записью локального компьютера, я не могу предоставить разрешения учетной записи компьютера в «TestDomain» для общего ресурса и папки NTFS на компьютере в «DevDomain».

Итак, как я могу предоставить разрешения для общего ресурса / файловой системы devDomain учетной записи службы «Система» с компьютера в «TestDomain»?

или же

Как заставить агент тестирования (работающий от имени администратора локального компьютера) выполнить сценарий развертывания в контексте своей учетной записи, а не в контексте системы этого компьютера?

Я в тупике!

РЕДАКТИРОВАТЬПохоже, что пользовательский интерфейс агента тестирования выполняется в указанной вами учетной записи, но когда вы настраиваете его таким образом, он оставляет службу «Служба агента Visual Studio Lab» запущенной как локальную систему, вы можете вручную изменить это в службах на более подходящую. учетная запись домена и эта учетная запись затем отражается в результатах "whoami" PS.

Сейчас я изучаю использование учетной записи TestDomain для службы, которая отражает учетную запись DevDomain, чтобы я мог соответствующим образом установить разрешения для общего ресурса.

Это аналогичный сценарийСценарии развертывания управления TFS Lab но так как это обошлось без использования тестов и настроек тестов, и я специально хочу разрешить часть развертывания, я подумал, что стоит задать этот вопрос.

Ответы на вопрос(5)

Ваш ответ на вопрос