在Azure中使用VSTS任务'PowerShell on Target Machines'而不使用公共IP

时间:2017-09-18 16:56:26

标签: powershell azure azure-devops winrm

我们正在使用VSTS将数十个虚拟机部署到Azure中。我们现在需要在特定的VM上执行一些脚本。不幸的是,我们不能让虚拟机拥有公共IP。是否可以在没有公共IP的目标计算机上使用需要WinRM和PowerShell的VSTS任务?如果没有,那将是我们最好的选择吗?

2 个答案:

答案 0 :(得分:1)

  

是否可以使用需要WinRM和PowerShell的VSTS任务   没有公共IP的目标机器?

除了您创建VPN隧道之外,这是不可能的。但这不是必要且昂贵的。

对于您的方案,您可以使用Azure VM Custom Script Extension

  

自定义脚本扩展在Azure上下载并执行脚本   虚拟机。此扩展对于部署后非常有用   配置,软件安装或任何其他配置/   管理任务。可以从Azure存储或下载脚本   GitHub,或在扩展运行时提供给Azure门户。

如果你使用它,你就不需要winrm你的虚拟机。

Set-AzureRmVMCustomScriptExtension命令可用于将自定义脚本扩展添加到现有虚拟机。例如:

Set-AzureRmVMCustomScriptExtension -ResourceGroupName myResourceGroup `
    -VMName myVM `
    -Location myLocation `
    -FileUri myURL `
    -Run 'myScript.ps1' `
    -Name DemoScriptExtension

注意:您可以将脚本保存在GitHub和Azure存储帐户上。

答案 1 :(得分:0)

您需要配置Azure网络,以便您的构建基础架构可以路由到这些服务器的专用IP地址。如果您的构建服务器也在Azure中,那么只需要确保它们全部使用相同的Azure虚拟网络。如果没有,您需要设置Azure VPN网关。

具体配置太深,变化太大,无法进入此处。