Inhalt

AzureRM.Network 0.9 macht Probleme mit Azure Automation

Inhalt

Solltet Ihr Azure Automation nutzen und das Modul AzureRM.Network in einer der Versionen von 0.9.0 bis min. 0.10.0 nutzen, kann es zu Problemen bei der Ausführung von Azure Automation Runbooks kommen.

Sollten die verwendeten Runbooks insgesamt etwas aufwändiger sein, kann es durch diese Version zu hoher Memory Auslastung kommen. Sollten über 400 MB RAM verwendet werden, endet das Runbook nach drei Versuchen im Status “Suspended”.

Fehler

The runbook job was attempted 3 times, but it failed each time. Common reasons that runbook jobs fail can be found here:
https://docs.microsoft.com/en-us/azure/automation/automation-troubleshooting-automation-errors

Ein Downgrade auf Version 6.8.0 ist erforderlich. Am einfachsten natürlich mit PowerShell.

$ModuleName = "AzureRM.Network"
$MaxVersion = "6.8.0"

# Gather information
$AffectedAutomationAccounts = Get-AzureRmAutomationAccount | Get-AzureRmAutomationModule -Name AzureRM.Network | Where-Object {$_.Version -gt $MaxVersion }

# Review
$AffectedAutomationAccounts | Select-Object ResourceGroupName, AutomationAccountName, Name, Version

#region Redeploy
Write-Verbose "Generate RootTemplate.json in `"devopsgallerystorage.blob.core.windows.net`""
$uri = "https://www.powershellgallery.com/packages/$ModuleName/$MaxVersion/DeployItemToAzureAutomation?itemType=PSModule&requireLicenseAcceptance=False"
# This only generates the RootTemplate.json for the specified version. It simulates the Button "Deploy to Azure Automation" on the Gallery
Invoke-WebRequest $uri | Out-Null

# Download JSON 
$uri = "https://devopsgallerystorage.blob.core.windows.net/armtemplates/$ModuleName/$MaxVersion/RootTemplate.json"
$templateFileName = ".\RootTemplate.$ModuleName.$ModuleVersion.json"
Invoke-WebRequest -Uri $uri -OutFile $templateFileName | Out-Null

$AffectedAutomationAccounts | ForEach-Object {
    $AutomationAccountLocation = Get-AzureRmAutomationAccount -ResourceGroupName $_.ResourceGroupName -Name $_.AutomationAccountName | Select-Object -ExpandProperty Location
    $parameters = @{
        "Automation Account Name"            = $_.AutomationAccountName
        "Automation Account Location"        = "$AutomationAccountLocation"
        "New or existing Automation account" = "Existing"
    }
    $params = @{
        "ResourceGroupName"       = $_.ResourceGroupName
        "TemplateFile"            = $templateFileName 
        "TemplateParameterObject" = $parameters
        "Mode"                    = 'Incremental'
    }
    New-AzureRmResourceGroupDeployment @params
}
#endregion