Introduction
Azure CLI est l'outil en ligne de commande indispensable pour les ingénieurs DevOps et cloud. En 2026, son utilisation va bien au-delà des commandes simples : elle permet d'orchestrer des environnements complexes, de gérer des déploiements conditionnels et d'intégrer des pipelines CI/CD robustes. Ce tutoriel de niveau expert vous guide à travers des scripts complets et réutilisables. Vous apprendrez à sécuriser l'authentification, à exploiter JMESPath pour filtrer les résultats et à gérer les erreurs de manière professionnelle. Chaque exemple est immédiatement applicable en production.
Prérequis
- Azure CLI 2.60+ installé et mis à jour
- Un abonnement Azure actif avec permissions Owner
- Connaissances avancées en Bash et JSON
- Accès à un environnement Linux ou WSL
Authentification sécurisée
#!/bin/bash
set -euo pipefail
az login --service-principal \
--username $AZURE_CLIENT_ID \
--password $AZURE_CLIENT_SECRET \
--tenant $AZURE_TENANT_ID
az account set --subscription $AZURE_SUBSCRIPTION_ID
TOKEN=$(az account get-access-token --query accessToken -o tsv)
echo "Authentification réussie"Ce script utilise l'authentification service principal pour les environnements CI/CD. Les variables d'environnement évitent les secrets en clair. set -euo pipefail garantit l'arrêt immédiat en cas d'erreur.
Création d'un groupe de ressources
#!/bin/bash
RG_NAME="rg-prod-$(date +%Y%m%d)"
LOCATION="westeurope"
az group create \
--name $RG_NAME \
--location $LOCATION \
--tags Environment=Production Owner=DevOpsTeam
echo "Groupe de ressources créé : $RG_NAME"Création dynamique avec nom horodaté et tags obligatoires. Cette approche évite les conflits de noms et facilite le suivi des coûts en production.
Déploiement Bicep avec validation
#!/bin/bash
set -euo pipefail
PARAMS='{"location":{"value":"westeurope"}}'
az deployment group create \
--resource-group $RG_NAME \
--template-file main.bicep \
--parameters "$PARAMS" \
--what-if
az deployment group create \
--resource-group $RG_NAME \
--template-file main.bicep \
--parameters "$PARAMS"Utilisation de --what-if pour prévisualiser les changements avant déploiement réel. Le script est idempotent et sécurisé grâce à set -euo pipefail.
Extraction et filtrage JMESPath
#!/bin/bash
az resource list \
--resource-group $RG_NAME \
--query "[?type=='Microsoft.Storage/storageAccounts'].{name:name, location:location, sku:sku.name}" \
--output tableJMESPath permet de filtrer précisément les ressources sans post-traitement. Cette technique est essentielle pour les scripts d'audit et de reporting en production.
Script de nettoyage conditionnel
#!/bin/bash
set -euo pipefail
COUNT=$(az group list --query "[?tags.Environment=='Staging'] | length(@)" -o tsv)
if [ "$COUNT" -gt 0 ]; then
az group delete --name $RG_NAME --yes --no-wait
echo "Suppression lancée en arrière-plan"
else
echo "Aucun groupe à supprimer"
fiLe nettoyage conditionnel évite les suppressions accidentelles. L'option --no-wait permet de ne pas bloquer le pipeline CI/CD.
Bonnes pratiques
- Toujours utiliser set -euo pipefail dans les scripts
- Préférer les variables d'environnement aux secrets en clair
- Ajouter systématiquement des tags sur toutes les ressources
- Utiliser --what-if avant tout déploiement
- Versionner vos scripts et templates Bicep
Erreurs courantes à éviter
- Oublier de gérer les erreurs avec set -e
- Exposer des secrets dans les logs de pipeline
- Ne pas vérifier l'existence des ressources avant suppression
- Utiliser des noms statiques qui causent des conflits
Pour aller plus loin
Approfondissez vos compétences Azure avec nos formations avancées sur l'automatisation et DevOps. Découvrez nos parcours certifiants : https://learni-group.com/formations