【发布时间】:2018-03-19 23:04:17
【问题描述】:
我们正在使用 TFS 2018 On-Premises。 在我们的服务器上,我们设置了一个构建代理,它可以按需构建我们的项目。 在发布任务中,我配置了一个文件共享,我可以在其中找到我的构建。 此构建服务器还托管我们的登台和测试网站。
现在有机会创建部署组。 部署组应该能够将构建直接部署到 Web 服务器。
如果我创建部署组,则会提供用于注册部署代理的脚本。
现在我的问题是:我是否必须在我的构建服务器上注册这个部署代理,该服务器还托管我们的登台网站,还是这个代理与已经注册的构建代理相同?
我必须同时注册两个代理吗?
如果我的声明网站在构建机器上,是否可以仅使用构建功能进行部署,还是我必须设置部署组,然后必须配置发布定义?
如果我必须设置部署组和发布,我是否已将构建时的发布任务从文件共享更改为服务器?
添加注册代理:
如果我尝试注册代理,则会收到错误消息:
使用 2 个参数调用“DownloadFile”时出现异常:“请求 已中止:无法创建受保护的 SSL/TLS 通道。”
这是因为需要密码吗?构建代理没有这样的问题。 还是构建代理已经使用了 SSL / TLS 通道或类似的原因?
注册脚本为:
$ErrorActionPreference="Stop";If(-NOT ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent() ).IsInRole([Security.Principal.WindowsBuiltInRole] “管理员”)){ throw "在管理员 PowerShell 提示符中运行命令"};If(-NOT (测试路径 $env:SystemDrive\'vstsagent')){mkdir $env:SystemDrive\'vstsagent'}; cd $env:SystemDrive\'vstsagent'; for($i=1;$i -lt 100;$i++){$destFolder="A"+$i.ToString();if(-NOT (测试路径 ($destFolder))){mkdir $destFolder;cd $destFolder;break;}}; $agentZip="$PWD\agent.zip";(New-Object Net.WebClient).DownloadFile( 'https://go.microsoft.com/fwlink/?linkid=867184', $agentZip);添加类型 -AssemblyName System.IO.Compression.FileSystem;[System.IO.Compression.ZipFile]::ExtractToDirectory( $agentZip, "$PWD");.\config.cmd --deploymentgroup --agent $env:COMPUTERNAME --runasservice --work '_work' --url 'https://xxxxxx:1234/' --collectionname 'DefaultCollection' --projectname 'ABCDEFGH' --deploymentgroupname "DEV" ;删除项目 $agentZip;
【问题讨论】:
-
根据安装脚本,它会去DownloadFile('go.microsoft.com/fwlink/?linkid=867184', $agentZip);所以它可以下载代理。您的服务器是否可以通过网络进行下载?
-
“请求已中止:无法创建受保护的 SSL/TLS 通道”有一个解决方法。 github.com/Microsoft/vsts-agent/issues/1439 在运行代理部署脚本之前,在您的 powershell 会话中运行以下命令:[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
标签: tfs