【发布时间】:2017-10-17 08:02:21
【问题描述】:
有没有办法在开发测试实验室虚拟机上启用自动启动功能作为创建的一部分,即可以将其添加到 VM 的 ARM 模板中吗?
我目前通过 Azure 门户手动启用此功能,但我发现从 Team Services 进行后续部署时它会被禁用。
解决方案
受下面 Ashok 接受的答案的启发,我设法将 PowerShell 脚本调整并简化为以下...
Param([string] $resourceId)
$tags = (Get-AzureRmResource -ResourceId $resourceId).Tags
if (-Not ($tags) -Or -Not($tags.ContainsKey('AutoStartOn'))) {
$tags += @{ AutoStartOn=$true; }
}
if (-Not ($tags) -Or -Not($tags.ContainsKey('AlwaysOn'))) {
$tags += @{ AlwaysOn=$true; }
}
Set-AzureRmResource -ResourceId $resourceId -Tag $tags -Force
【问题讨论】:
-
您如何从 Team Services 进行后续部署?
-
作为 Team Services 中发布定义的一部分,我们使用 DevTest Labs Create VM 任务来确保机器在部署之前可用。我只能假设这个过程是导致机器丢失其 auto-start 标记的原因。可能是由于在 VM 创建期间提供的 ARM 模板?也许还有另一种方法来处理这个问题,比如下面 Ashok 的回答中的 PowerShell。
-
能否通过 Get-AzureRmResource 命令获取必要的信息?
$VmResourceId = "subscriptions/$subscriptionId/resourcegroups/$labResourceGroup/providers/microsoft.devtestlab/labs/$labName/virtualmachines/$VmName" $vm = Get-AzureRmResource -ResourceId $VmResourceId -ExpandProperties
标签: azure-devops azure-virtual-machine azure-resource-manager azure-pipelines-release-pipeline azure-devtest-labs