Skip to content
4-Jul-18-2024-07-02-06-1804-AM
Michael SedyJul 25, 2024 8:11:01 AM3 min read

Deployment von virtuellen Maschinen mit Hilfe von Bicep - Infrastructure as code in Azure

Deployment von virtuellen Maschinen mit Hilfe von Bicep-1

 

1     Was ist Bicep?

Bicep ist eine deklarative Syntax zum Bereitstellen von Azure-Ressourcen. In einer Bicep-Datei definieren Sie die Infrastruktur, die Sie in Azure bereitstellen möchten. Ihre Ressourcen werden auf einheitliche Weise bereitgestellt.

 

Hier ein einfaches Beispiel für einen Storage account:

Die Extension eines Bicep-Files ist .bicep

 

2     Was benötige ich für Tools fürs Deployment?

Um ein Bicep File (z.B. main.bicep) zu deployen gibt es zwei Möglichkeiten:


2.1       Azure CLI

Wenn Sie Azure CLI mit Bicep verwenden, haben Sie alles, was Sie zum Bereitstellen und Dekompilieren von Bicep-Dateien benötigen. Azure CLI installiert die Bicep CLI automatisch, wenn ein Befehl ausgeführt wird, der diese benötigt.

Sie müssen mindestens Version 2.20.0 der Azure CLI installiert haben. Informationen zum Installieren oder Aktualisieren der Azure-Befehlszeilenschnittstelle:

Installieren der Azure CLI unter Windows

Installieren der Azure CLI unter Linux 

 

Der folgende Befehl startet das deployment. Das Ziel ist in diesem Fall eine Resource Gruppe.

Es gibt auch einen What-if parameter um zu testen ob der code valide ist und um sich alle Änderungen die gemacht werden anzuzeigen.

Weiterführende Informationen: Richten Sie die Bicep-Entwicklungs- und Einsatzumgebungen ein - Microsoft Learn

 

2.2       Powershell

Sie müssen mindestens Azure PowerShell-Version 5.6.0 installiert haben. Informationen zur Aktualisierung oder Installation finden Sie unter Installieren des Azure Az PowerShell-Moduls.

Von Azure PowerShell wird die Bicep-Befehlszeilenschnittstelle nicht automatisch installiert. Stattdessen müssen Sie die Bicep-Befehlszeilenschnittstelle manuell installieren.

Der folgende Befehl startet das deployment. Das Ziel ist in diesem Fall eine Resource Gruppe.

Es gibt auch hier einen What-if parameter um zu testen ob der code valide ist und um sich alle Änderungen die gemacht werden anzuzeigen.

Weiterführende Informationen: Richten Sie die Bicep-Entwicklungs- und Einsatzumgebungen ein - Microsoft Learn

 

3     VM mit Bicep

Ein Bicep Skript für eine virtuelle Maschine in Minimalkonfiguration könnte in etwa so aussehen:

Es können Parameter definiert und im Resource-Code referenziert werden.

Parameter können sowohl in der Kommandozeile mitgegeben werden als auch in externe Parameter-Files ausgelagert werden. (Im JSON- oder im bicepparam-Format)
So kann man flexiblen wiederverwendbaren Code generieren.

Im obigen Skript wurde eine Netzwerkkarte schon vorab erstellt und referenziert. Diese gibt auch das VNET und SUBNET vor in der sich die neu erstellte VM befindet.

In einem Bicep Skript können auch mehrere Ressourcen enthalten sein. Wenn es Abhängigkeiten unter den Ressourcen gibt, reiht sie Bicep automatisch in die richtige Reihenfolge. Sollte es Bicep nicht gelingen die Abhängigkeiten richtig aufzulösen kann man auch eine „dependency“ angeben.

Im selben Skript erstellte Ressourcen werden einfach mit dem Namen referenziert.

Hier nun ein Skript einer VM, komplett mit Netzwerkkarte, VNET, Subnet und einer Public IP-Adresse:

Das Skript gliedert sich in folgende Sektionen:

  1. Parameter (Parameter):
    • In diesem Abschnitt werden die Parameter definiert, die Sie anpassen können. Zum Beispiel location, vmName, adminUsername, usw.
  2. Virtuelles Netzwerk (VNET):
    • Hier wird das virtuelle Netzwerk (VNET) erstellt, das die IP-Adressbereiche für Ihre Ressourcen enthält.
  3. Netzwerkschnittstelle (NIC):
    • Die NIC wird erstellt und mit dem VNET und der Subnetzkonfiguration verknüpft.
  4. Betriebssystemfestplatte (OS-Disk):
    • Die OS-Disk wird erstellt und mit dem VM-Image (Windows Server 2025 Datacenter) verknüpft.
  5. Datenträger (Data Disk):
    • Hier wird ein Datenträger erstellt, der später an die VM angehängt wird.
  6. Öffentliche IP-Adresse (Public IP):
    • Eine öffentliche IP-Adresse wird erstellt, die der VM zugeordnet wird.
  7. Virtuelle Maschine (VM):
    • Die VM wird erstellt und mit den oben genannten Ressourcen verknüpft.


4     Bicep Features

  • Es gibt die Möglichkeit Schleifen zu verwenden um größere Batch deployments umzusetzen
  • Bicep kann Eigenschaften von bestehenden Ressourcen auslesen
  • Keys oder Secrets können sicher aus einem KeyVault ausgelesen und verwendet werden
  • Ein bicep File kann ganz einfach als Modul verwendet werden und aus einem „Controller-Script“ aufgerufen werden.
  • Neue Azure Features werden von Microsoft sofort in die API-Schnittstellen die bicep verwendet implementiert. Hier gibt es also keine Verzögerungen wie bei Third-Party-Anbietern
  • IN PREVIEW: Microsoft Graph Bicep Module: Funktionalität der MSGraph API mit bicep Code nützen.
  • Diese Liste ist natürlich nicht vollständig…

 

5     Weitere Empfehlungen

5.1       Source Code Tools

Bicep Files können in jedem Editor erstellt und bearbeitet werden.

Empfohlen wird aber Visual Studio Code: Visual Studio Code - Code Editing. Redefined

5.2       Source control

Source- oder Versioncontrol-Systeme sind Tools, die Änderungen am Code verfolgen und verwalten. Sie bieten eine laufende Historie der Code-Entwicklung und helfen, Konflikte beim Zusammenführen von Beiträgen aus verschiedenen Quellen zu lösen.
Empfohlen wird GIT: Git (git-scm.com)

5.3       Repositories

Für die gleichzeitige Zusammenarbeit von mehreren Personen ist ein Repository unverzichtbar.
Wir empfehlen Azure Devops: Azure Repos – Git Repositories | Microsoft Azure
Weitere Alternative wäre z.B. Github: About GitHub and Git - GitHub Docs

avatar

Michael Sedy

Azure Cloud Architect Infrastructure Expert @ Experts Inside Skills: Azure Infrastructure, Windows Server, PowerShell

VERWANDTE ARTIKEL