Мы запускаем TFS и управление выпуском в помещениях, и я хочу развернуть свои приложения в удаленном центре обработки данных. Доступ через Интернет, поэтому нет доступных акций Windows. Я использую шаблоны vNext, и afaik RM, по-видимому, поддерживает только непустые пути по общим ресурсам Windows.Как развернуть с управлением выпуском в удаленный центр обработки данных
Как я могу использовать Управление выпуском для развертывания программного обеспечения в этом центре обработки данных?
Im работает над этим решением: Используйте WebDav на базе IIS, расположенной внутри центра обработки данных. Сервер RM и Target могут использовать клиент WebDav, встроенный в окна и доступ к нему по пути.
Я еще не получил этого, поскольку RM не будет использовать правильные учетные данные для входа на сервер webdav.
Обновлено моим решением Это всего лишь доказательство концепции и не тестируется на производство.
- настроить WebDav сайт доступным из обоих RM сервера и целевого сервера
- Установите функцию "опыт рабочего стола" на обоих серверах
сделать следующие DLL
using System; using System.ComponentModel.Composition; using System.Diagnostics; using System.IO; using Microsoft.TeamFoundation.Release.Common.Helpers; using Microsoft.TeamFoundation.Release.Composition.Definitions; using Microsoft.TeamFoundation.Release.Composition.Services; namespace DoTheNetUse { [PartCreationPolicy(CreationPolicy.Shared)] [Export(typeof(IThreadSafeService))] public class DoTheNetUse : BaseThreadSafeService { public DoTheNetUse() : base("DoTheNetUse") {} protected override void DoAction() { Logger.WriteInformation("DoAction: [DoTheNetUse]"); try { Logger.WriteInformation("# DoTheNetUse.Start #"); Logger.WriteInformation("{0}, {1}", Environment.UserDomainName, Environment.UserName); { Logger.WriteInformation("Net use std"); var si = new ProcessStartInfo("cmd.exe", @"/c ""net use \\sharedwebdavserver.somewhere\DavWWWRoot\ /user:webdavuser webdavuserpassword"""); si.UseShellExecute = false; si.RedirectStandardOutput = true; si.RedirectStandardError = true; var p = Process.Start(si); p.WaitForExit(); Logger.WriteInformation("Net use output std:" + p.StandardOutput.ReadToEnd()); Logger.WriteInformation("Net use output err:" + p.StandardError.ReadToEnd()); } //########################################################## Logger.WriteInformation("# Done #"); } catch (Exception e) { Logger.WriteError(e); } } } }
Имя его " ReleaseManagementMonitor2.dll "
- Поместить его в подкаталог a к службе «ReleaseManagementMonitor»
- Настроить общий путь в соответствии с нижеприведенным решением.
НЕ OVERWITE СУЩЕСТВУЮЩЕЙ "ReleaseManagementMonitor2.dll"
Причина, по которой это работает MEF. Служба ReleaseManagementMonitor пытается загрузить DLL «ReleaseManagementMonitor2.dll» из всех подпапок. Эта DLL реализует сервисный интерфейс, который распознает RM. Он запускает «сетевое использование», чтобы применить учетные данные к сеансу, который выполняется службой, и тем самым предоставляет доступ к недоступному в данный момент серверу webdav.
Это решение сертифицировано "Works on my machine"
Подробнее о работе с ненадежными доменами - http://blogs.msdn.com/b/biprasad/archive/2015/02/03/using-release-management- to-deploy-to-untrusted-target-server.aspx и http: //blogs.msdn.com/b/visualstudioalm/archive/2013/12/12/configuration-release-management-to-work-through-untrusted.aspx – divyanshm
Это именно то, что я делаю atm, и у меня это работает на сервере webdav, но это действительно хакерское решение. Если бы я мог использовать только sftp или что-то подобное ... –
Можете ли вы использовать что-то подобное для загрузки бит на целевой машине - https://social.technet.microsoft.com/Forums/windowsserver/en-US/1c9e20fd-19d7-41b4-8edb-d6673ab35bec/sftp-in-powershell – divyanshm