使用VS Online Build Server / Release Management连接到Azure VM时出错

时间:2014-12-29 23:52:09

标签: powershell azure-devops azure-virtual-machine ms-release-management

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

使用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失败了   以下错误消息:目标上的服务器证书   computer(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. 在远程计算机上添加证书。但由于第一段代码似乎表明有证书我怀疑这会有所作为。

  3. 那里有没有人真正使用过这种配置(VSO / RM / AZURE VM),可以给我一些关于我接下来应该尝试的指导。

2 个答案:

答案 0 :(得分:1)

你以错误的方式解决这个问题。通过vNext发布模板执行PowerShell脚本时,它会在目标计算机上执行 。您不需要使用Enter-PSSession或担心凭据 - 您可以在"执行PS / DSC脚本"中输入所有信息。动作。

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

答案 1 :(得分:0)

您应该使用Azure的vNext模板。它们内置了身份验证,您可以将Azure帐户与RM相关联,以使事情更轻松。

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

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

注意:您还必须将其中一个选项从true翻转为false。无法记住属性的名称,但只有几个选项以及环境,组件和PS脚本......您需要向下滚动,这与身份验证有关。