使用VSTS任务';目标机器上的PowerShell';Azure中没有公共IP

使用VSTS任务';目标机器上的PowerShell';Azure中没有公共IP,powershell,azure,azure-devops,winrm,Powershell,Azure,Azure Devops,Winrm,我们正在使用VST将数十个虚拟机部署到Azure中。我们现在需要在特定的虚拟机上执行一些脚本。不幸的是,我们不能让虚拟机拥有公共IP。是否可以在没有公共IP的目标计算机上使用需要WinRM和PowerShell的VSTS任务?如果不是,这是我们的最佳选择吗?您需要配置Azure网络,以便构建基础设施可以路由到这些服务器的专用IP地址。如果您的构建服务器也在Azure中,那么只需确保它们都使用相同的Azure虚拟网络即可。如果没有,则需要设置Azure VPN网关 具体的配置太深,太多变,无法进入

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

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

具体的配置太深,太多变,无法进入这里

是否可以使用需要打开WinRM和PowerShell的VSTS任务 没有公共IP的目标计算机

除非您创建一个VPN隧道,否则这是不可能的。但这是不必要的,也不昂贵

对于您的场景,您可以使用

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

如果您使用它,您不需要winrm您的虚拟机

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

Set-AzureRmVMCustomScriptExtension -ResourceGroupName myResourceGroup `
    -VMName myVM `
    -Location myLocation `
    -FileUri myURL `
    -Run 'myScript.ps1' `
    -Name DemoScriptExtension
注意:您可以将脚本保存在GitHub和Azure存储帐户上