DevOps stroomlijnen: Azure CLI integreren in CI/CD-pipelines
By Mirko Peters ·
In de snelle wereld van moderne softwarelevering draait alles om efficiëntie en snelheid. Nu ontwikkelteams continuous integration en continuous deployment (CI/CD) omarmen, is de behoefte aan lichtgewicht, betrouwbare en platformonafhankelijke automatiseringstools groter dan ooit. Of je nu tijdelijke staging-omgevingen opzet, infrastructure-as-code uitrolt of microservices configureert, je pipelin
Automatically translated with AI from the original post. Read the English original
In de snelle wereld van moderne softwarelevering draait alles om efficiëntie en snelheid. Nu ontwikkelteams continuous integration en continuous deployment (CI/CD) omarmen, is de behoefte aan lichtgewicht, betrouwbare en platformonafhankelijke automatiseringstools groter dan ooit. Of je nu tijdelijke staging-omgevingen opzet, infrastructure-as-code uitrolt of microservices configureert, je pipelinetools moeten snel en consistent werken.
Maak kennis met de Azure CLI. Ontworpen voor eenvoud, snelheid en uitvoering op elk platform, is het snel uitgegroeid tot dé tool voor cloudengineers die hun DevOps-werkstromen willen stroomlijnen. In dit artikel bekijken we waarom de Azure CLI excelleert in moderne deploymentpipelines, hoe de tool zich verhoudt tot alternatieve beheertools en hoe je hem naadloos in je CI/CD-processen integreert.
Als deze diepgaande blik je aanspreekt, luister dan zeker naar onze bijbehorende podcastaflevering, Azure CLI vs PowerShell: Which Should You Use?, waarin we de belangrijkste verschillen uitlichten tussen Microsofts premium interfaces voor cloudbeheer.
Inleiding tot Azure CLI in CI/CD
Continuous integration- en continuous deployment-pipelines hebben tools nodig die kunnen draaien in minimale containeromgevingen zonder veel overhead. Automatiseringsscripts waren vroeger sterk gekoppeld aan specifieke besturingssystemen, wat wrijving veroorzaakte bij het overzetten tussen lokale ontwikkelmachines, build-agents en productieclusters. Moderne DevOps vraagt om tools die volledige gelijkwaardigheid bieden op Windows, macOS en Linux.
De Azure CLI speelt hier direct op in. Dankzij een overzichtelijke, scriptvriendelijke opdrachtstructuur die standaard JSON teruggeeft, kunnen ontwikkelaars en geautomatiseerde agents cloudresources met weinig gedoe opvragen, aanmaken en wijzigen. Wanneer je de tool opneemt in een CI/CD-pipeline, zoals GitHub Actions, GitLab CI of Azure DevOps, verandert hij abstracte deploymentstappen in herhaalbare, deterministische code.
Waarom Azure CLI voor moderne pipelines
Bij het ontwerpen van moderne CI/CD-architecturen telt elke seconde. Build-agents verbruiken rekenkracht en lange wachtrijen voor deployments kunnen de ontwikkelsnelheid afremmen. Azure CLI is speciaal geoptimaliseerd voor deze snelle omgevingen. Omdat de onderliggende architectuur draait op lichtgewicht REST-aanroepen, is de uitvoering uitzonderlijk snel en zuinig met resources.
Bovendien draaien containerized build-agents vaak op uitgeklede Linux-images. Het installeren van zware afhankelijkheden kan de opstarttijd van je pipeline flink opblazen. De compacte footprint en eenvoudige installatie van de Azure CLI maken hem een ideale metgezel voor op Docker gebaseerde CI/CD-runners. Ontwikkelaars kunnen deploymentscripts lokaal testen in dezelfde shellomgeving als die van de externe build-server, waardoor "het werkt op mijn machine"-bugs drastisch afnemen.
Azure CLI vs PowerShell: snelle vergelijking
In cloudbeheer wordt vaak gediscussieerd over de keuze tussen Azure CLI en PowerShell. Beide tools zijn enorm krachtig, maar ze richten zich op totaal verschillende gebruikersprofielen en beheerpatronen. Om te begrijpen waarom de Azure CLI voor CI/CD-pipelines vaak de voorkeur krijgt, helpt het om ze naast elkaar te zetten.
| Scenario | Beste tool | Waarom het opvalt |
|---|---|---|
| Snelle resource-deployment | Azure CLI | Snel, lichtgewicht, eenvoudige opdrachten, werkt op elk platform, geschikt voor DevOps en scripting. |
| Enterprise-automatisering | PowerShell | Verwerkt complexe automatisering, objectgebaseerde output, bulkbewerkingen, sterke Windows-integratie. |
| CI/CD-pipelineintegratie | Azure CLI | Commando's op hoog niveau, native ondersteuning voor infrastructure as code, eenvoudige pipelineopzet. |
| Geavanceerd scripten | PowerShell | Flexibel scripten, tools bouwen, diepgaande controle over Azure-resources. |
| Platformonafhankelijk beheer | Azure CLI | Draait op Linux, macOS en Windows, gebouwd in Python, ideaal voor diverse omgevingen. |
Waar PowerShell uitblinkt in zware, objectgeoriënteerde beheertaken en diepe Windows-integraties, wint de Azure CLI in gecontaineriseerde pipelines dankzij de eenvoudige tekstuitvoer, snellere uitvoeringstijden bij bulk-lichtgewichtbewerkingen en native Bash-compatibiliteit.
Azure CLI installeren en configureren
Voordat je je cloudinfrastructuur kunt automatiseren, moet je ervoor zorgen dat de Azure CLI correct is geïnstalleerd en geauthenticeerd in je deploymentomgeving. Gelukkig is de installatie eenvoudig, ongeacht je besturingssysteem.
Als je een lokale machine of een virtuele build-agent met Windows opzet, kun je de CLI installeren via PowerShell:
Invoke-WebRequest -Uri https://aka.ms/installazurecliwindows -OutFile .\AzureCLI.msi; Start-Process msiexec.exe -Wait -ArgumentList '/I AzureCLI.msi /quiet'; rm .\AzureCLI.msiVoor Linux-gebaseerde CI/CD-runners (zoals standaard Ubuntu GitHub Actions-runners) kan de installatie in één stap worden uitgevoerd via de Microsoft-pakketrepository, of je maakt gebruik van vooraf geïnstalleerde runneromgevingen die de Azure CLI standaard al bevatten. Na de installatie controleer je je installatie eenvoudig door het volgende uit te voeren:
az --versionVoor authenticatie in pipelines vermijd je interactieve browserlogins. Configureer je pipeline in plaats daarvan om veilig te authenticeren met een service principal of een managed identity:
az login --service-principal -u $AZURE_CLIENT_ID -p $AZURE_CLIENT_SECRET --tenant $AZURE_TENANT_IDKernsyntaxis en basiscommando's van de Azure CLI
Het mooie van de Azure CLI is de intuïtieve, voorspelbare syntaxis. Elk commando begint met de namespace az, gevolgd door de resourcegroep of service en tot slot de actie die je wilt uitvoeren. Deze platte commandostructuur maakt het schrijven en lezen van pipelinescripts opvallend eenvoudig.
Hier zijn enkele fundamentele commando's die vaak worden gebruikt bij cloudautomatisering:
# 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.jsonStandaard geven Azure CLI-commando's schone JSON-payloads terug. Daardoor is het eenvoudig om specifieke eigenschappen op te vragen met de ingebouwde JMESPath-expressies (--query) en die waarden door te geven aan volgende stappen in je CI/CD-workflow.
Deployments automatiseren met de Azure CLI
Automatisering is het hart van DevOps. Wanneer je applicaties naar Azure deployt, wil je liever niet vertrouwen op handmatige klikken in de Azure Portal. Door je deploymentlogica in Azure CLI-scripts te verpakken, zorg je voor absolute consistentie tussen de ontwikkel-, test- en productieomgevingen.
Stel dat je een nieuwe Azure App Service wilt inrichten, de configuratie-instellingen wilt bijwerken en je code wilt deployen bij elke merge naar de main-branch. Een geautomatiseerd script met de Azure CLI maakt dit eenvoudig:
# 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..."
Omdat deze commando's idempotent zijn, breekt het meermaals uitvoeren ervan je infrastructuur niet; in plaats daarvan zorgen ze ervoor dat de doelomgeving overeenkomt met de gewenste configuratiestatus.
De Azure CLI integreren in CI/CD-pipelines
Het integreren van Azure CLI-commando's in populaire CI/CD-orkestratoren zoals GitHub Actions of Azure DevOps Pipelines is opvallend eenvoudig. Omdat pipelineagents doorgaans shellscripts uitvoeren, kun je je standaard `az`-commando's rechtstreeks in je workflowconfiguratiebestanden plaatsen.
Hier is een voorbeeld van een fragment uit een GitHub Actions-workflowbestand dat inlogt op Azure en een webapplicatie deployt:
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
Door officiële runneracties te combineren met rechtstreekse Azure CLI-commando's, creëer je een robuuste, controleerbare en geautomatiseerde deploymentpipeline die bij elke codewijziging naadloos wordt uitgevoerd.
Best practices voor het stroomlijnen van DevOps met de Azure CLI
Om het maximale uit je Azure CLI-automatisering te halen en je CI/CD-pipelines veilig en performant te houden, volg je deze beproefde best practices:
- Sla geheimen nooit hardcoded op: Bewaar je service principal-gegevens, verbindingsreeksen en API-sleutels altijd in de beveiligde geheimenopslag van je CI/CD-platform (bijvoorbeeld GitHub Secrets of Azure DevOps Variable Groups).
- Pin je CLI-versies vast: Cloudomgevingen veranderen snel. Om onverwachte breaking changes in je pipelines te voorkomen, leg je expliciet vast welke Azure CLI-versie je buildagents moeten gebruiken.
- Gebruik JSON-query's: Gebruik de ingebouwde parameter
--queryom specifieke ID's of endpoints uit de uitvoer van commando's te halen, in plaats van complexe externe regex- of parsingscripts te schrijven. - Houd scripts idempotent: Ontwerp je CLI-commando's zo dat ze herhaaldelijk kunnen worden uitgevoerd zonder onbedoelde neveneffecten of fouten door dubbele resources.
- Ruim testomgevingen op: Gebruik geautomatiseerde opruimscripts in je PR-pipelines om tijdelijke resourcegroepen te verwijderen en onnodige cloudkosten te voorkomen.
Conclusie
Het integreren van de Azure CLI in je CI/CD-pipelines is een gamechanger voor moderne DevOps-teams. Het lichtgewicht karakter, de cross-platformcompatibiliteit en de intuïtieve syntaxis maken de Azure CLI tot de ideale metgezel voor snelle, geautomatiseerde clouddeployments. Door veilige authenticatiepraktijken, goed gestructureerde scripts en robuuste pipelineintegratie te combineren, bereik je een ongekend niveau van snelheid en betrouwbaarheid in je softwareleveringscyclus.
Om dit onderwerp nog dieper te verkennen en een levendig debat over command-line-filosofieën te beluisteren, bekijk je onze bijbehorende podcastaflevering: Azure CLI vs PowerShell: Which Should You Use?. Beheers beide tools, begrijp hun eigen sterke punten en neem vandaag nog volledige controle over je Azure-cloudarchitectuur!