Azure Pipelines代理设置未按预期工作

时间:2019-05-01 20:31:47

标签: azure powershell azure-devops azure-pipelines

在Windows 2016服务器上配置本地构建代理时,我使用以下代理配置设置:

.\config.cmd --proxyurl http://192.3.4.5:8080 --sslskipcertvalidation

这使生成服务器可以毫无问题地连接到代理后面的Azure DevOps,但是Powershell生成无法连接到Internet。我通过在build命令的开头设置环境变量来解决此问题:

$env:http_proxy = "192.3.4.5:8080"

最后一个问题是构建过程中的一个步骤,该过程要求Winrm到直接在构建服务器上托管的VM,并且它无法连接。我已经尝试将代理的.proxybypass文件配置为:

localhost
192\.3\.4\.*

但是,这未能解决问题。关于如何在构建步骤中设置代理绕过的任何想法?我可以设置另一个powershell env变量吗?

1 个答案:

答案 0 :(得分:1)

代理设置可确保座席可以呼出。这些任务依赖于许多不同的技术,并且每个任务都使用不同的代理配置,IP掩码和白名单。这样,如果您的代理位于代理之后,则可能需要在所述计算机上配置许多不同的代理设置。真痛苦甚至对于像我这样的任务作者,他们也不能仅仅采用代理配置并将其一对一复制到每个任务所依赖的技术上。

Powershell依靠运行任务的用户的Windows Internet设置代理配置。您还可以覆盖.NET代理配置Powershell依赖于.NET代理设置,此处列出了如何动态更改设置的方法:https://stackoverflow.com/a/209072/736079

在powershell构建中使用.NET类:

[net.webrequest]::defaultwebproxy = new-object net.webproxy "http://$env:proxy_ip" 

然后添加

[system.net.webrequest]::defaultwebproxy.BypassProxyOnLocal = $true