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

时间:2017-07-10 20:38:42

标签: continuous-integration continuous-deployment azure-virtual-machine azure-pipelines azure-pipelines-release-pipeline

出于安全原因,在Azure中为VM配置了内部IP。对于CI / CD,VSTS需要连接到VM,但我看到连接超时并且自然因为VM落后于组织防火墙。为了打开防火墙,我们需要来自VASS的源IP(即PAAS)。我如何计算出源IP范围?或者还有其他方法可以连接到VM吗?

1 个答案:

答案 0 :(得分:1)

最好在构建/发布期间将当前的托管代理IP添加到防火墙IP列表中。要使用Hosted代理IP获取最新信息,您可以使用此PowerShell(检查允许脚本在构建/发布定义中访问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范围的文章,但是每周三(太平洋时间)将使用新的计划IP地址范围上传新的xml文件。新的IP地址范围将在下一个星期一(太平洋时间)生效。因此,您需要经常更新防火墙IP范围。

What IP Addresses are used by Hosted Build?