VSTS部署组的NSG出站规则

时间:2018-05-11 18:57:11

标签: azure azure-devops

我有一个Azure VM,它有一个NSG,它需要限制只有必要的服务和应用程序的出站Internet访问(从限制最多然后添加规则开始)。 Team Services代理扩展也将安装ARM模板(无法使用拒绝所有出站Internet规则下载)。

VSTS使用的每周IP地址更改是否适用于部署组?托管构建的IP有similar question

我正在VSTS版本定义中创建VM。在上面的链接中,我找到了一个答案,你可以调用REST API来获取最简单的IP地址,但是当我在浏览器中尝试这个时,看起来这是不推荐使用的。 (“抱歉!我们的服务目前无法使用。”)关于如何在运行发行版创建虚拟机时为NSG应用IP的任何其他想法?

  

“您可以动态获取当前构建代理的IP地址   动态创建安全组(使用AWS SDK for .NET)

     

打开构建定义>选择选项标签>选中允许脚本   访问OAuth令牌添加PowerShell步骤/任务(参数:-RestAddress   https://starain.vsdtl.visualstudio.com/DefaultCollection/_apis/vslabs/ipaddress   -Token $(System.AccessToken))。“

2 个答案:

答案 0 :(得分:0)

如果我读得正确,您希望使用VSTS管道创建VM,这个新VM应该托管一个VSTS代理,以便以后随时回调VSTS。

我认为没有解决方案。虽然在创建时很容易为VSTS实例获取有效的IP,但您无法保证此IP将长时间有效。您可能很幸运能够设置代理,但VSTS的链接可能会在任何时候停止。

这个问题本身很有趣,可以使用Azure PowerShell任务解决。该脚本将:

  1. 使用Resolve-DnsName cmdlet
  2. 将名称解析为IP地址
  3. 使用Set-AzureRmNetworkSecurityGroup
  4. 添加或更新NSG规则

答案 1 :(得分:0)

该API现在不可用,您可以尝试直接获取IP和update NSG PowerShell任务(例如$ip = Invoke-RestMethod http://ipinfo.io/json | Select -exp ip)PowerShell One Liner:Get External/Public IP Address

另一方面,您使用私人代理:Deploy an agent on Windows