DevOps effizient gestalten: Azure CLI in CI/CD-Pipelines integrieren
Von Mirko Peters ·
In der schnelllebigen Welt der modernen Softwarebereitstellung zählen Effizienz und Geschwindigkeit mehr denn je. Da Entwicklungsteams auf Continuous Integration und Continuous Deployment (CI/CD) setzen, ist der Bedarf an schlanken, zuverlässigen und plattformübergreifenden Automatisierungswerkzeugen größer denn je. Ob Sie temporäre Staging-Umgebungen bereitstellen, Infrastruktur als Code ausrolle
Automatisch mit KI aus dem Originalbeitrag übersetzt. Englisches Original lesen
In der schnelllebigen Welt der modernen Softwarebereitstellung zählen Effizienz und Geschwindigkeit mehr denn je. Da Entwicklungsteams auf Continuous Integration und Continuous Deployment (CI/CD) setzen, ist der Bedarf an schlanken, zuverlässigen und plattformübergreifenden Automatisierungswerkzeugen größer denn je. Ob Sie temporäre Staging-Umgebungen bereitstellen, Infrastruktur als Code ausrollen oder Microservices konfigurieren: Ihre Pipeline-Werkzeuge müssen schnell und konsistent laufen.
Hier kommt die Azure CLI ins Spiel. Sie wurde für Einfachheit, Geschwindigkeit und plattformübergreifende Ausführung entwickelt und ist schnell zum bevorzugten Werkzeug für Cloud-Engineers geworden, die ihre DevOps-Workflows straffen wollen. In diesem Beitrag zeige ich, warum die Azure CLI in modernen Bereitstellungspipelines so überzeugt, wie sie im Vergleich zu anderen Verwaltungswerkzeugen abschneidet und wie Sie sie nahtlos in Ihre CI/CD-Prozesse integrieren.
Wenn Ihnen dieser ausführliche Beitrag gefällt, hören Sie sich unbedingt unsere passende Podcast-Episode an, Azure CLI vs PowerShell: Which Should You Use?, in der wir die entscheidenden Unterschiede zwischen den wichtigsten Cloud-Verwaltungsschnittstellen von Microsoft herausarbeiten.
Einführung in die Azure CLI für CI/CD
CI/CD-Pipelines brauchen Werkzeuge, die in minimalen Container-Umgebungen ohne großen Overhead laufen. Automatisierungsskripte waren früher eng an bestimmte Betriebssysteme gebunden, was beim Wechsel zwischen lokalen Entwicklerrechnern, Build-Agenten und Produktionsclustern für Reibung sorgte. Moderne DevOps-Praktiken erfordern Werkzeuge, die volle Parität unter Windows, macOS und Linux bieten.
Die Azure CLI begegnet diesen Anforderungen direkt. Mit einer klaren, skriptfreundlichen Befehlsstruktur, die standardmäßig JSON ausgibt, können Entwickler und automatisierte Agenten Cloud-Ressourcen ohne großen Aufwand abfragen, erstellen und ändern. Wird sie in eine CI/CD-Pipeline eingebettet, etwa in GitHub Actions, GitLab CI oder Azure DevOps, werden abstrakte Bereitstellungsschritte zu wiederholbarem, deterministischem Code.
Warum die Azure CLI für moderne Pipelines
Beim Entwurf moderner CI/CD-Architekturen zählt jede Sekunde. Build-Agenten verbrauchen Rechenressourcen, und lange Bereitstellungswarteschlangen können die Entwicklungsgeschwindigkeit ausbremsen. Die Azure CLI ist gezielt für solche Hochgeschwindigkeitsumgebungen optimiert. Da ihre Architektur auf schlanken REST-Aufrufen basiert, ist die Ausführung außergewöhnlich schnell und ressourcenschonend.
Darüber hinaus laufen containerisierte Build-Agenten häufig auf abgespeckten Linux-Images. Umfangreiche Abhängigkeiten können die Startzeiten Ihrer Pipeline unnötig verlängern. Der geringe Platzbedarf der Azure CLI und die unkomplizierte Installation machen sie zu einem idealen Begleiter für Docker-basierte CI/CD-Runner. Entwickler können Bereitstellungsskripte lokal in einer Shell-Umgebung testen, die mit der des Build-Servers identisch ist, was „Bei mir funktioniert es doch“-Fehler drastisch reduziert.
Kurzvergleich: Azure CLI vs. PowerShell
Im Cloud-Management wird häufig diskutiert, ob man die Azure CLI oder PowerShell verwenden sollte. Beide Werkzeuge sind enorm leistungsfähig, richten sich aber an völlig unterschiedliche Nutzergruppen und Betriebsmuster. Um zu verstehen, warum die Azure CLI für CI/CD-Pipelines oft die Nase vorn hat, lohnt sich ein direkter Vergleich.
| Szenario | Bestes Werkzeug | Warum es heraussticht |
|---|---|---|
| Schnelle Ressourcenbereitstellung | Azure CLI | Schnell, schlank, einfache Befehle, funktioniert auf jeder Plattform, ideal für DevOps und Skripting. |
| Unternehmensautomatisierung | PowerShell | Bewältigt komplexe Automatisierung, objektbasierte Ausgabe, Massenoperationen, starke Windows-Integration. |
| Integration in CI/CD-Pipelines | Azure CLI | Übergeordnete Befehle, native Unterstützung für Infrastruktur als Code, einfache Pipeline-Einrichtung. |
| Erweitertes Skripting | PowerShell | Flexibles Skripting, Entwicklung eigener Werkzeuge, tiefe Kontrolle über Azure-Ressourcen. |
| Plattformübergreifendes Management | Azure CLI | Läuft unter Linux, macOS und Windows, in Python entwickelt, ideal für heterogene Umgebungen. |
PowerShell eignet sich hervorragend für umfangreiche, objektorientierte Verwaltungsaufgaben und tiefe Windows-Integrationen. Die Azure CLI setzt sich dagegen in containerisierten Pipelines durch: dank ihrer übersichtlichen Textausgabe, schnellerer Ausführung bei vielen einfachen Massenoperationen und nativer Bash-Kompatibilität.
Installation und Konfiguration der Azure CLI
Bevor Sie Ihre Cloud-Infrastruktur automatisieren können, müssen Sie sicherstellen, dass die Azure CLI in Ihrer Bereitstellungsumgebung ordnungsgemäß installiert und authentifiziert ist. Glücklicherweise ist die Installation unabhängig vom Betriebssystem unkompliziert.
Wenn Sie einen lokalen Rechner oder einen virtuellen Build-Agenten mit Windows einrichten, können Sie die CLI mit PowerShell installieren:
Invoke-WebRequest -Uri https://aka.ms/installazurecliwindows -OutFile .\AzureCLI.msi; Start-Process msiexec.exe -Wait -ArgumentList '/I AzureCLI.msi /quiet'; rm .\AzureCLI.msiFür Linux-basierte CI/CD-Runner (etwa Standard-Ubuntu-Runner für GitHub Actions) lässt sich die Installation in einem einzigen Schritt über das Microsoft-Paketrepository erledigen. Alternativ können Sie vorinstallierte Runner-Umgebungen nutzen, die die Azure CLI bereits standardmäßig enthalten. Nach der Installation überprüfen Sie sie ganz einfach, indem Sie Folgendes ausführen:
az --versionFür die Authentifizierung in Pipelines sollten Sie interaktive Browseranmeldungen vermeiden. Konfigurieren Sie Ihre Pipeline stattdessen so, dass sie sich sicher über einen Dienstprinzipal (Service Principal) oder eine verwaltete Identität (Managed Identity) authentifiziert:
az login --service-principal -u $AZURE_CLIENT_ID -p $AZURE_CLIENT_SECRET --tenant $AZURE_TENANT_IDZentrale Syntax und Befehle der Azure CLI
Die Stärke der Azure CLI liegt in ihrer intuitiven, vorhersehbaren Syntax. Jeder Befehl beginnt mit dem Namensraum az, gefolgt von der Ressourcengruppe oder dem Dienst und schließlich der gewünschten Aktion. Diese flache Befehlsstruktur macht das Schreiben und Lesen von Pipeline-Skripten erstaunlich einfach.
Hier sind einige grundlegende Befehle, die in der Cloud-Automatisierung häufig verwendet werden:
# Create a resource group
az group create --name MyPipelineResourceGroup --location eastus
# List all virtual machines in a table format
az vm list --output table
# Deploy an ARM or Bicep template
az deployment group create --resource-group MyPipelineResourceGroup --template-file azuredeploy.jsonStandardmäßig liefern Azure-CLI-Befehle saubere JSON-Ausgaben. Damit lassen sich bestimmte Eigenschaften mithilfe der integrierten JMESPath-Ausdrücke (--query) problemlos abfragen und die Werte an nachfolgende Schritte Ihres CI/CD-Workflows übergeben.
Bereitstellungen mit der Azure CLI automatisieren
Automatisierung ist das Herzstück von DevOps. Wenn Sie Anwendungen in Azure bereitstellen, sollten Sie möglichst nicht auf manuelle Klicks im Azure-Portal setzen. Indem Sie die Bereitstellungslogik in Azure-CLI-Skripte kapseln, stellen Sie eine vollständige Konsistenz zwischen Entwicklungs-, Staging- und Produktionsumgebungen sicher.
Stellen Sie sich vor, Sie müssen einen neuen Azure App Service bereitstellen, dessen Konfigurationseinstellungen aktualisieren und Ihren Code bei jedem Merge in den Hauptzweig (main) ausrollen. Ein automatisiertes Skript mit der Azure CLI macht dies mühelos:
# Create an App Service plan
az appservice plan create --name MyPlan --resource-group MyResourceGroup --sku B1 --is-linux
# Create the web app
az webapp create --name MyAppService --resource-group MyResourceGroup --plan MyPlan --runtime "NODE:18-lts"
# Configure environment variables
az webapp config appsettings set --name MyAppService --resource-group MyResourceGroup --settings DATABASE_URL="Server=tcp:myServer.database.windows.net..."
Da diese Befehle idempotent sind, beschädigt ein mehrfaches Ausführen Ihre Infrastruktur nicht. Stattdessen stellen sie sicher, dass die Zielumgebung Ihrer gewünschten Konfiguration entspricht.
Azure CLI in CI/CD-Pipelines integrieren
Die Integration von Azure-CLI-Befehlen in gängige CI/CD-Orchestratoren wie GitHub Actions oder Azure DevOps Pipelines ist erstaunlich unkompliziert. Da Pipeline-Agenten in der Regel Shell-Skripte ausführen, können Sie Ihre üblichen `az`-Befehle direkt in Ihre Workflow-Konfigurationsdateien übernehmen.
Hier ist ein Beispiel für einen Ausschnitt aus einer GitHub-Actions-Workflow-Datei, die sich bei Azure anmeldet und eine Webanwendung bereitstellt:
name: Deploy to Azure
on:
push:
branches: [ main ]
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Azure Login
uses: azure/login@v1
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}
- name: Deploy Azure Resources
run: |
az group create --name ProdRG --location eastus
az deployment group create --resource-group ProdRG --template-file infra/main.bicep
Durch die Kombination offizieller Runner-Actions mit direkten Azure-CLI-Befehlen entsteht eine robuste, nachvollziehbare und automatisierte Bereitstellungspipeline, die bei jeder Codeänderung reibungslos läuft.
Bewährte Methoden für effizientes DevOps mit der Azure CLI
Damit Sie das Maximum aus Ihrer Azure-CLI-Automatisierung herausholen und Ihre CI/CD-Pipelines sicher und leistungsfähig halten, sollten Sie diese bewährten Methoden beachten:
- Geheimnisse niemals fest codieren: Speichern Sie Ihre Anmeldedaten für Dienstprinzipale, Verbindungszeichenfolgen und API-Schlüssel immer im sicheren Geheimnisspeicher Ihrer CI/CD-Plattform (z. B. GitHub Secrets oder Azure DevOps-Variablengruppen).
- CLI-Versionen festschreiben: Cloud-Umgebungen ändern sich rasant. Um unerwartete Breaking Changes in Ihren Pipelines zu vermeiden, legen Sie explizit fest, welche Azure-CLI-Version Ihre Build-Agenten verwenden sollen.
- JSON-Abfragen nutzen: Verwenden Sie den integrierten Parameter
--query, um bestimmte IDs oder Endpunkte aus Befehlsausgaben zu extrahieren, statt komplexe externe Regex- oder Parsing-Skripte zu schreiben. - Skripte idempotent gestalten: Entwerfen Sie Ihre CLI-Befehle so, dass sie wiederholt ausgeführt werden können, ohne unbeabsichtigte Nebenwirkungen oder Fehler durch doppelte Ressourcen zu verursachen.
- Testumgebungen aufräumen: Richten Sie in Ihren PR-Pipelines automatisierte Bereinigungsskripte ein, die temporäre Ressourcengruppen löschen, damit sich keine unnötigen Cloud-Kosten ansammeln.
Fazit
Die Integration der Azure CLI in Ihre CI/CD-Pipelines ist ein echter Wendepunkt für moderne DevOps-Teams. Ihre schlanke Architektur, die plattformübergreifende Kompatibilität und die intuitive Syntax machen sie zum idealen Begleiter für schnelle, automatisierte Cloud-Bereitstellungen. Wer sichere Authentifizierung, gut strukturierte Skripte und robuste Pipeline-Integration kombiniert, erreicht in seinem Software-Lebenszyklus ein bisher unerreichtes Maß an Tempo und Zuverlässigkeit.
Um noch tiefer in dieses Thema einzutauchen und eine lebhafte Diskussion über die Philosophien hinter Kommandozeilen zu verfolgen, hören Sie sich unsere begleitende Podcast-Folge an: Azure CLI vs PowerShell: Which Should You Use?. Meistern Sie beide Tools, verstehen Sie ihre jeweiligen Stärken und übernehmen Sie noch heute die volle Kontrolle über Ihre Azure-Cloud-Architektur!