Azure IT

Azure Public DNS export all Zones for Backup

Mithilfe der Azure CLI kann man einfach bestehende Zonenfiles nach Azure DNS importieren.. Als Backup der Zonen bietet sich ein Export aller Zonen via Azure CLI an. Diese könnten, sollte an einer Zone etwas versehentlich geändert oder glöscht worden sein, wieder via Azure CLI importiert werden. Ist die Zone noch vorahnden, werden die Records einfach wieder mit den Informationen des Files überschrieben.

Kombiniert man die Azure CLI mittels etwas Powershell, so lassen sich einfach alle Public DNS Zonen einer Subscription auslesen und danach via Azure CLI exportieren. Die grün markierten Variablen sind entsprechend anzupassen.

 

***********

# Read all Azure Public DNS Domains in specified Subscription and export to txt file with azure cli
# Set Subscription and Export Folder
Write-Host “Azure RM Powershell and Azure CLI need to be installed, otherwise script will fail”
$Subscription = “SubscriptionNAme”
$ExportFolder = “C:\Temp\PublicDNSZoneExport\”

# Connect AzureRM Powershell / Azure CLI
Write-Host “Connecting to AzureRM and to Azure CLI” -ForegroundColor Green
Connect-AzureRmAccount
az login

# Select Subscription for AzureRMAccount
Select-AzureRmSubscription -Subscription $Subscription
# Select Azure CLI Subscription
az account set -s $Subscription

# Get all zones
$DNSZones = Get-AzureRMDnsZone

Write-Host “Start exporting Zones to filesystem. Each Zone will be listed in this window as well. This can take several minutes….”
Sleep 5

foreach ($Zone in $DNSZones) {
$ExportFile = $ExportFolder+$Zone.Name+”.txt”
az network dns zone export -g $Zone.ResourceGroupName -n $Zone.Name -f $ExportFile
}

Read-Host “Zone export finisched to path ‘$ExportFolder’. Press enter to close this window….”

***********

Um ein versehentliches Löschen von DNS Zonen zu verindern, könnten z.B. entsprechende Tags auf den Zonen gesetzt in Azure gesetzt werden.