Azure Migrate bietet im Alltag viele sehr nützliche Funktionen. Dabei können unter anderem Assessments auf bestehende on-premises Umgebung gefahren werden, um neben einer Kostenindikation auch einen ersten Überblick über die technische Machbarkeit einer Lift-and-Shift-Migration von Servern von on-premises zu erhalten.
Insbesondere für diese Assessments (die dann u.a. auch eine Depency Analysis erlauben) werden Gruppen in Azure Migrate benötigt. Diese kann man im Portal nur sehr rudimentär anlegen. Dabei müssen aus der Liste von erkannten on-opremises Servern die gewünschten Systeme in mehreren Listen-Seiten zu je ca. 10 Systemen, die sich weder sortieren noch (sinnvoll) filtern lässt, ausgewählt und mit Checkboxen zur Gruppe hinzugefügt werden:
Nun gibt es zwar seit Ende 2020 ein PowerShell-Modul für Azure Migrate – dieses kann aber bis heute in keinster Weise mit diesen Gruppen umgehen – weder diese Abfragen, noch anlegen oder verändern.
Aus diesem Grund – und weil es immer öfter nötig ist, aus hunderten oder tausenden erkannten on-prem Systemen nur einen Teil auszuwählen – habe ich ein passendes PowerShell-Skript erstellt, welches eine über Hostnamen gegebene Liste von Servern in eine entweder bereits vorhandene oder im Laufe des Skriptes angelegte Gruppe aufnimmt. Dazu werden verschiedene REST-Calls gegen die REST-API von Azure benutzt, um sowohl mit den Gruppen als auch den erkannten Servern umgehen zu können.
Das Skript ist auf meinem GitHub Repo zu finden:
scripts/GroupAzMigrateServers.ps1 at master · HaikoHertes/scripts (github.com)
Ich werde in den kommenden Tagen voraussichtlich noch ein paar kleine Verbesserungen vornehmen, das Skript ist aber bereits jetzt voll lauffähig.