【问题标题】:Azure runbook for rebooting VMs via multiple tags query用于通过多个标签查询重新启动 VM 的 Azure Runbook
【发布时间】:2018-04-23 13:06:23
【问题描述】:

我知道如何为具有一个标签的 VM 重新启动/安排重新启动。但是,我很难根据多个标签的存在找出如何重新启动 VM。这可能吗?

例如: 如果 VM 的 Tag 1=True 和 Tag 2=True,那么我希望它重新启动。 如果任一标签为假,请不要重新启动。 如果缺少任何一个标签,请不要重新启动。

【问题讨论】:

    标签: azure tags reboot runbook


    【解决方案1】:

    您的意思是要使用 Azure Runbook 重新启动带有一些标签的 VM?

    如果我是对的,也许你可以使用这个脚本来做:

    $connectionname = "AzureRunAsConnection"
    try
    {
        $servicePrincipalConnection=Get-Automationconnection -Name $connectionname
        Login-AzureRmAccount -servicePrincipal -TenantId $servicePrincipalConnection.TenantId -applicationId $servicePrincipalConnection.applicationId -certificateThumbprint $servicePrincipalConnection.certificatethumbprint   
    }
    catch{
        if (!$serviceprincipalconnection)
        {
            $ErrorMessage = "Connection $connectionName not found."
            throw $ErrorMessage
        } else{
            Write-Error -Message $_.Exception
            throw $_.Exception
        }
    }
    
    $VMs = Get-AzureRMVm | Where {$_.Tags.keys -contains "Tier" -and $_.Tags.Values -eq "2" -and $_.Tags.Values -eq "1"} | select Name, ResourceGroupName, Tags
    ForEach ($vm in $vms)
    {
        $VMStatus2 = Get-AzureRMVM -Name $VM.Name -ResourceGroupName $VM.ResourceGroupName -Status
    
        $VMName = $VM.Name
        $VMRG = $VM.ResourceGroupName
        $VMPS = $VMStatus2.Statuses[1].DisplayStatus
            If ($VMPS-eq "VM Running")
                {
                    Restart-AzureRMVM -Name $VMName -ResourceGroupName $VMRG -force
                    "$VMName is restarting"
                }
    }
    

    您可以使用该脚本列出标记键包含Tier 且值为12 的VM。

    这是我的截图:

    希望这会有所帮助。

    【讨论】:

    • 这对你有用吗?如果您需要更多帮助,请告诉我。另外,如果有帮助,请不要忘记接受它作为答案,谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-10
    • 2018-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-28
    相关资源
    最近更新 更多