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

标签 azure powershell azure-devops azure-pipelines

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

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

这使得构建服务器可以毫无问题地连接到代理后面的 Azure DevOps,但是 powershell 构建在连接到 Internet 时遇到问题。我通过在构建命令的开头设置一个环境变量解决了这个问题:

$env:http_proxy = "192.3.4.5:8080"

最后一个问题是构建中的一个步骤需要 winrm 到直接托管在构建服务器上的虚拟机,但它无法连接。我尝试按如下方式配置代理的 .proxybypass 文件:

localhost
192\.3\.4\.*

但这并不能解决问题。关于如何在构建步骤中设置代理旁路有什么想法吗?我可以设置另一个 powershell 环境变量吗?

最佳答案

代理设置确保代理可以调用。这些任务依赖于许多不同的技术,并且每个任务都使用不同的代理配置、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

关于Azure Pipelines 代理代理设置未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55942362/

相关文章:

azure - 从 Azure DevOps 导出测试结果

azure - 使用 Azure 垂直扩展时是否会涉及停机时间?

Azure负载均衡器性能不稳定

Azure CLI 下载错误

powershell - $MyInspiration.MyCommand.Name 提供奇怪的结果

visual-studio - TFS 常量错误输出 TF10121 : The path '' is not found or not supported. 键入或选择其他路径

azure - 如何在 Microsoft Azure 的 Jupiter Notebook 中为 Spark 集群安排 pyspark 作业?

windows - 当目标路径包含表情符号字符时,复制快捷方式文件(*.lnk)的目标

powershell - 在 Powershell 中,$input 是做什么用的?

Azure Pipelines 每个拉取请求触发 2 个作业