1

有时我想我是唯一一个尝试使用此配置的人.....

使用 Visual Studio Online 作为我的构建控制器和 RM Update 4 作为我的发布管理器。

此时构建本身工作正常,我正在编写一个部署脚本,RM 将在构建完成后启动。

我可以让脚本触发,但我对实际脚本中的内容有问题。对于初学者,该脚本只是尝试在 Azure VM 上创建一个目录,然后再转向更有用的东西,例如实际移动软件。

一开始我试过

Enter-PSSession -ComputerName fecprocessing.cloudapp.net –UseSSL
Invoke-Command fecprocessing.cloudapp.net {mkdir C:\data\}

这让我

连接到远程服务器 thatserver.cloudapp.net 失败并显示以下错误消息:目标计算机上的服务器证书 (thatserver.cloudapp.net:5986) 有以下错误:

SSL 证书由未知的证书颁发机构签署。

所以经过一些研究,我尝试了这个

$so = New-PSSessionOption-SkipCACheck:$true-SkipCNCheck:$true-SkipRevocationCheck:$true
Enter-PSSession-ComputerName thatserver.cloudapp.net-UseSSL-SessionOption$so
Invoke-Command thatserver.cloudapp.net {mkdirC:\data\}

这是返回可怕的

连接到远程服务器 thatserver.cloudapp.net 失败并显示以下错误消息:WinRM 客户端无法处理请求。如果身份验证方案与 Kerberos 不同,或者客户端计算机未加入域,则必须使用 HTTPS 传输或必须将目标计算机添加到 TrustedHosts 配置设置。使用 winrm.cmd 配置 TrustedHosts。请注意,TrustedHosts 列表中的计算机可能未经过身份验证。您可以通过运行以下命令获得更多信息:winrm help config。有关详细信息,请参阅 about_Remote_Troubleshooting 帮助主题。<---

现在我做了很多阅读,似乎有两条基本路径。

  1. 将构建机器添加到trustedhosts 列表中 - 将是不行的,因为构建服务器机器名称会在 VSO 启动一个来执行我的构建时改变所有内容(对吗?)。这也是不安全的,因为该服务器将无法判断它是正确的服务器在机器名之外进行远程处理

  2. 在远程机器上添加证书。但由于第一段代码似乎表明有一个证书,我怀疑这会有所作为。

有没有人实际使用过这个配置(VSO/RM/AZURE VM)并且可以给我一些关于我接下来应该尝试什么的指导。

4

2 回答 2

1

你以错误的方式处理这个问题。当您通过 vNext 发布模板执行 PowerShell 脚本时,它会在目标计算机上执行。您无需弄乱Enter-PSSession或担心凭据——您可以在“执行 PS/DSC 脚本”操作中输入所有这些信息。

此外,您的#1 解决方案与您遇到的问题无关:发布发生在构建完成后。当您遇到此错误时,构建服务器不再涉及。

于 2015-01-02T00:13:48.487 回答
0

您应该使用适用于 Azure 的 vNext 模板。他们内置了身份验证,您可以将 Azure 帐户与 RM 相关联,以使事情变得更容易。

http://nakedalm.com/create-release-management-pipeline-professional-developers/

您还可以在 VSO 中使用内置的 RM 服务器,这样您就不必自己动手了。

注意:您还必须将选项之一从真翻转为假。不记得属性的名称,但只有几个选项以及环境、组件和 PS 脚本……您需要向下滚动,这与身份验证有关。

于 2014-12-30T09:15:35.110 回答