Am vergangenen Wochenende wollte ich endlich mal meine private Azure Subscription aufräumen, die ich seit vielen Jahren für meine Community Projekte nutze. Dabei bin ich über ein Problem mit den "alten" Storage Accounts gestolpert, dass sich durch eine Migration auf ARM beheben lässt.
Deshalb möchte ich in diesem Blog Post beschreiben, wie man ein Azure Storage Account (Classic) auf den Azure Resource Manager (ARM) migrieren kann.
Wo lag eigentlich das Problem?
Nachdem sich in meiner ältesten Azure Subscription doch einige Altlasten über die letzten Jahre angesammelt hatten, wollte ich am vergangenen Wochenende endlich mal Ordnung schaffen.
Dazu nahm ich mir als erstes die "Default-…" Ressourcegruppen vor.
Kurzum die Dienste, die noch mit den alten ASM APIs erstellt worden sind.
Einige der darin befindlichen Dienste, wollte ich in neue Ressourcegruppen umziehen…
Bei diesem Vorhaben, bin ich allerdings über die Meldung "Resource that cannot be moved" gestolpert…
Das Ganze brachte mich auf die Frage:
Kann man eigentlich ein klassisches Azure Storage Account nach ARM migrieren?
Ein wenig Nachforschung zeigte schnell:
Ja, das geht.
Dazu müssen, wie so oft, die PowerShell Cmdlets für Azure installiert sein.
Registrierung des Azure Resource Providers
Zuerst öffnet man das PowerShell Eingabefenster und loggt man sich in die entsprechende Azure Subscription für den Azure Resource Manager ein…
Login-AzureRmAccount Select-AzureRmSubscription -SubscriptionName "<Name der Subscription>"
Anschließend muss der entsprechende Azure Resource Provider registriert werden…
Register-AzureRmResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate
Die Registrierung passiert dann asynchron im Hintergrund.
Um zu sehen, wann dies beendet ist, kann folgender Befehl ausgeführt werden…
Get-AzureRmResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate
Sobald der Azure Resource Provider registriert ist, kann mit der Migration losgelegt werden…
Migration des Azure Storage Accounts
Beim Azure Resource Manager hatte wir uns ja bereits für die Provider Registrierung angemeldet.
Jetzt muss man noch das Gleiche bei den klassischen ASM APIs machen…
Add-AzureAccount Select-AzureSubscription -SubscriptionName "<Name der Subscription>"
Zur Kontrolle noch ein kurzer Blick in das Azure Portal und los gehts…
Die Migration läuft in zwei Schritten ab.
In Schritt Eins muss das entsprechende Storage Account mit folgendem Befehl vorbereitet werden…
Move-AzureStorageAccount -Prepare -StorageAccountName "saschadittmann"
Das dauert einen Moment und sollte mit folgender Meldung quittiert werden…
Eine erneute Kontrolle im Azure Portal zeigt, dass jetzt zwei Azure Storage Accounts mit dem gleichem Namen existieren.
Das neue Azure Storage Account wurde außerdem in einer eigenen bzw. neuen Ressourcegruppe hinzugefügt.
Jetzt sollte man ausführlich prüfen, ob man mit dem Migrationsergebnis zufrieden ist.
Wenn ja, kann man mit Schritt Zwei die Migration abschließen…
Move-AzureStorageAccount -Commit -StorageAccountName "saschadittmann"
… oder rückgängig machen …
Move-AzureStorageAccount -Abort -StorageAccountName "saschadittmann"
Auch das wird wieder entsprechend von PowerShell quittiert.
Im Azure Portal sollte jetzt auch nur das neue Storage Account zu sehen sein…
Zu guter Letzt kann das neue Storage Account im Azure Portal, oder auch via PowerShell, umgezogen werden…
Get-AzureRmResource -ResourceType "Microsoft.Storage/storageAccounts" ` -ResourceName "saschadittmann" ` -ResourceGroupName "saschadittmann-Migrated" ` | Move-AzureRmResource -DestinationResourceGroupName "saschadittmann"
Weitere Informationen: