Tags: Azure, Configuration-Management
Der Azure Resource Manager ist der Dreh- und Angelpunkt von Azure. Er stellt Ressourcen bereit und verwaltet sie. ARM setzt alle Aufträge um, welche über die verschieden Tools (Portal-GUI, PowerShell, etc.) erzeugt werden. Mit Hilfe von Templates lassen sich auch komplexe Deployments schnell und einfach realisieren.
Ressourcen, die ARM verwaltet, stehen in der Azure-Hierarchie auf der untersten Ebene. Zuerst kommen Management Groups, dann Subscriptions, darunter Resource Groups und innerhalb dieser dann die einzelnen Ressourcen.
ARM kann Ressourcen erstellen, anpassen oder löschen. Zu diesem Zweck kommen unterschiedliche Resource Provider zum Einsatz. Jeder Ressourcentyp hat seinen entsprechenden Provider, sei es eine VM, ein vNet, DataStore oder eine WebApp.
Infrastructure as Code (IaC)
In der Vergangenheit wurden Infrastrukturen meist imperativ angelegt, mithin gab es immer einen definierten Ablauf bei der Bereitstellung. Dieser bestand aus einer logischen Abfolge an Schritten. Zuerst mussten Storage und Netzwerk zur Verfügung gestellt werden, im Anschluss VMs und andere Ressourcen.
PowerShell erwies sich bei dieser Methode als mächtiges Werkzeug und erfreut sich daher großer Beliebtheit. Scripts haben jedoch den Nachteil, dass sie schnell sehr komplex werden und regelmäßige Pflege erfordern.
Bei IaC wird dagegen die Zielumgebung deklariert. Die Deklaration kann die ganze Infrastruktur umfassen, einen Teilbereich oder eine einzelne Ressource. ARM nutzt für das Deployment eine Definition in Form einer JSON-Datei (JavaScript Object Notation).
Diesen Beitrag als Podcast anhören
Was sind ARM-Templates und wie erstellt man sie?
ARM-Vorlagen sind mithin JSON-Dateien, die Ressourcen-Deklarationen enthalten. Sie können in jedem Coding-Tool oder Editor erzeugt werden, welches JSON unterstützt. Beliebt ist dafür etwa Visual Studio Code (VSCode). Es handelt sich dabei um eine kostenlose Entwicklungsumgebung, die sich mit unzähligen Plugins erweitern lässt.
Darüber hinaus bietet Microsoft Quickstart-Templates im GitHub Repository an. Alternativ können Vorlagen auch über die Webseite Azure Quickstart Templates heruntergeladen werden. Beide Quellen zusammen enthalten über 1.000 kostenloser ARM-Vorlagen.
Ihre Bandbreite ist enorm und reicht von einfachen Applikationen, Datenbanken (auch Fremdanbieter), DNS, Netzwerkkomponenten bis hin zu kompletten Infrastrukturen. So gibt es beispielsweise Templates für ein vollständiges und redundantes RDS Deployment.
Nachdem man das Template angepasst hat, kann man es in ARM hochladen, und innerhalb von wenigen Minuten ist eine ganze RDS-Umgebung einsatzbereit.
Templates aus bestehenden Deployments erstellen
Wenn über die unterschiedlichen Wege (Portal, Shell oder REST-API) eine Ressource angelegt wurde, dann kann man dieses Deployment im Azure Portal in der jeweiligen Ressource oder Ressource-Gruppe im Blade Deployments bzw. Bereitstellungen anzeigen.
Dieses enthält die konfigurierten Einstellungen und vorgenommenen Eingaben. Sie lassen sich als Template direkt herunterladen oder in der Web-Oberfläche öffnen und bearbeiten.
Es besteht auch die Möglichkeit, die Vorlage beim Erstellen einer Ressource im Review-Bereich herunterzuladen. Dazu klickt man auf den Link Download a template for automation bzw. Vorlage zur Automatisierung herunterladen. Damit lassen sich künftig Ressourcen erstellen.
Im Azure-Portal selbst kann man ebenfalls Templates erstellen. Dazu sucht man nach Custom oder Template Deployment und wählt den Eintrag für den Editor aus dem Marketplace. Damit lässt sich ein Template komplett ohne Coding-Kenntnisse erstellen und direkt anwenden.
Aufbau der ARM-Templates
Das JSON-File ist nach einem vorgegeben Schema aufgebaut. Es gibt eine Content-Versionierung, die mit 1.0.0.0 beginnt. In dem zuständigen Bereich können Parameter gesetzt werden, zum Beispiel durch Eingaben. Funktionen und Variablen lassen sich ebenfalls im Template nutzen.
Im Bereich Ressourcen werden der Typ und der entsprechende Provider angegeben. Es empfiehlt sich eine aktuelle ApiVersion zu verwenden, da der Provider im Laufe der Zeit weitere Funktionen anbietet.
Weitere Informationen zu den einzelnen Providern stellt Microsoft unter folgender Seite bereit. Dort kann man nach der gewünschten Ressource suchen. Der entsprechenden Provider wird inklusive der unterstützten Funktionen detailliert beschrieben.
Visualisierung mit VSCode
Mit der Erweiterung ARM Templates Viewer können die Vorlagen in VSCode visualisiert werden. Dazu muss man lediglich das JSON-File in VSCode öffnen und der Template Viewer startet dann automatisch. In wenigen Sekunden ist damit eine grafische Repräsentation erstellt.
Fazit
Die Vorteile der ARM Templates liegen vor allem in der deklarativen Syntax. Damit können Anwender prozedurale, Script-basierte Methoden vermeiden, die eine wesentlich höheren Aufwand erfordern und weniger flexibel sind.
Die Konfiguration bestehender Ressourcen, die über solche traditionellen Verfahren eingerichtet wurden, lässt sich als Vorlage exportieren, um künftige Deployments zu beschleunigen.
Die wichtigsten Vorzüge der ARM-Templates sind:
- Das Template ist gleichzeitig Dokumentation
- Der Ansatz der Deklaration spart Zeit, vermeidet Fehler und komplexe Abläufe
- Inkrementelles Deployment. Wird das Template mit Änderungen neu geladen, führt ARM nur die Änderungen aus.
- Nachvollziehbarkeit
- Skalierung
- Vereinfachte Zusammenarbeit und Übersichtlichkeit durch einheitlichen Sprachstandard
- Wiederholbarer, konsistenter Vorgang
Weitere Informationen gibt es bei Microsoft Docs.
Täglich Know-how für IT-Pros mit unserem Newsletter
Benjamin Bürk ist Senior Systems Engineer und betreut seit 2002 IT-Infrastrukturen von Unternehmen. Sein Schwerpunkt liegt im Aufbau und Betrieb von Server-Systemen und Microsoft 365-Umgebungen. Er ist ITIL4 Foundation, dreifach als MCSA sowie als MCSE Productivity zertifiziert..
// E-Mail, LinkedIn, Podcast //
Verwandte Beiträge
- Updates ohne Reboot: Windows Server 2025 erhält Hotpatching
- Sicherheitseinstellungen für Windows Server mit Ansible konfigurieren
- Anleitung: Azure AD Application Proxy einrichten
- Lokalen Windows Server 2022 über Azure Arc aus der Cloud verwalten
- Sicherheitseinstellungen für Windows verwalten: Ansible und Gruppenrichtlinien im Vergleich
Weitere Links