在 Azure 中预配的 VM 仅具有内部 IP。对于 CI/CD,VSTS 需要连接到 VM

A VM is provisioned in Azure with only internal IP. For CI/CD, VSTS needs to connect to VM

仅出于安全原因,在 Azure 中为 VM 配置了一个内部 IP。对于 CI/CD,VSTS 需要连接到 VM,但我看到连接超时,这自然是因为 VM 在组织防火墙后面。为了打开防火墙,我们需要 VSTS 的源 IP,即 PAAS。我如何找出源 IP 范围?或者有没有其他方法可以连接到虚拟机?

最好在 build/release 期间将当前托管代理 IP 添加到防火墙 IP 列表中。要获取当前使用的托管代理 IP,您可以使用此 PowerShell(选中允许脚本访问 build/release 定义中的 OAuth 令牌选项):

param (
    [string]$RestAddress,
    [string]$Token
    )
$basicAuth = ("{0}:{1}" -f 'test',$Token)
$basicAuth = [System.Text.Encoding]::UTF8.GetBytes($basicAuth)
$basicAuth = [System.Convert]::ToBase64String($basicAuth)
$headers = @{Authorization=("Basic {0}" -f $basicAuth)}
$result = Invoke-RestMethod -Uri $RestAddress -headers $headers -Method Get
Write-Host $result.value

参数:

-RestAddress https://[account].vsdtl.visualstudio.com/DefaultCollection/_apis/vslabs/ipaddress -Token $(System.AccessToken)

有一篇关于托管代理 IP 范围的文章,但每周三(太平洋时间)将上传一个新的 xml 文件,其中包含新的计划 IP 地址范围。新的 IP 地址范围将于下周一(太平洋时间)生效。所以你需要经常更新防火墙IP范围。

What IP Addresses are used by Hosted Build?