Optimiser DevOps : intégrer Azure CLI dans les pipelines CI/CD
By Mirko Peters ·
Dans le monde effréné de la livraison logicielle moderne, l’efficacité et la rapidité sont primordiales. Alors que les équipes de développement adoptent les pratiques d’intégration continue et de déploiement continu (CI/CD), le besoin d’outils d’automatisation légers, fiables et multiplateformes n’a jamais été aussi crucial. Que vous déployiez des environnements de préproduction temporaires, de l’
Automatically translated with AI from the original post. Read the English original
Dans le monde effréné de la livraison logicielle moderne, l’efficacité et la rapidité sont primordiales. Alors que les équipes de développement adoptent les pratiques d’intégration continue et de déploiement continu (CI/CD), le besoin d’outils d’automatisation légers, fiables et multiplateformes n’a jamais été aussi crucial. Que vous déployiez des environnements de préproduction temporaires, de l’infrastructure as code ou des microservices, vos outils de pipeline doivent s’exécuter rapidement et de manière cohérente.
Voici Azure CLI. Conçu pour la simplicité, la rapidité et l’exécution multiplateforme, il est rapidement devenu l’outil de référence des ingénieurs cloud souhaitant rationaliser leurs workflows DevOps. Dans cet article, nous explorerons pourquoi Azure CLI se distingue dans les pipelines de déploiement modernes, comment il se compare aux autres outils de gestion et comment vous pouvez l’intégrer en toute transparence dans vos processus CI/CD.
Si cette analyse approfondie vous intéresse, écoutez notre épisode de podcast associé, Azure CLI vs PowerShell: Which Should You Use?, dans lequel nous détaillons les différences essentielles entre les interfaces de gestion cloud phares de Microsoft.
Introduction à Azure CLI dans CI/CD
Les pipelines d’intégration continue et de déploiement continu exigent des outils capables de fonctionner dans des environnements de conteneurs minimalistes, sans surcharge importante. Traditionnellement, les scripts d’automatisation étaient étroitement liés à des systèmes d’exploitation spécifiques, ce qui générait des frictions lors du passage entre les postes de développement locaux, les agents de build et les clusters de production. Le DevOps moderne impose de privilégier des outils offrant une parité totale entre Windows, macOS et Linux.
Azure CLI répond directement à ces exigences. Grâce à une structure de commandes épurée et adaptée aux scripts, qui produit du JSON par défaut, il permet aux développeurs et aux agents automatisés d’interroger, de créer et de modifier des ressources cloud avec un minimum d’efforts. Intégré à un pipeline CI/CD, comme GitHub Actions, GitLab CI ou Azure DevOps, Azure CLI transforme des étapes de déploiement abstraites en code répétable et déterministe.
Pourquoi choisir Azure CLI pour les pipelines modernes
Lorsque vous concevez des architectures CI/CD modernes, chaque seconde compte. Les agents de build consomment des ressources de calcul, et des files d’attente de déploiement prolongées peuvent freiner la vélocité des développements. Azure CLI est spécialement optimisé pour ces environnements à haute vitesse. Son architecture repose sur des appels REST légers, ce qui rend son exécution exceptionnellement rapide et économe en ressources.
Par ailleurs, les agents de build conteneurisés s’exécutent souvent sur des images Linux allégées. L’installation de dépendances volumineuses peut alourdir les temps de démarrage des pipelines. L’empreinte réduite d’Azure CLI et son installation simple en font un compagnon idéal pour les runners CI/CD basés sur Docker. Il permet aux développeurs de tester localement leurs scripts de déploiement dans un environnement shell identique à celui qu’exécute le serveur de build distant, ce qui réduit considérablement les bogues du type « ça marche sur ma machine ».
Azure CLI vs PowerShell : comparatif rapide
Le choix entre Azure CLI et PowerShell est un débat récurrent dans la gestion cloud. Les deux outils sont extrêmement puissants, mais ils s’adressent à des profils d’utilisateurs et à des modes opératoires totalement différents. Pour comprendre pourquoi Azure CLI prend souvent l’avantage dans les pipelines CI/CD, il est utile de les comparer côte à côte.
| Scénario | Outil recommandé | Points forts |
|---|---|---|
| Déploiement rapide de ressources | Azure CLI | Rapide, léger, commandes simples, fonctionne sur toutes les plateformes, idéal pour le DevOps et les scripts. |
| Automatisation d’entreprise | PowerShell | Gère les automatisations complexes, sortie orientée objet, opérations en masse, intégration poussée à Windows. |
| Intégration dans un pipeline CI/CD | Azure CLI | Commandes de haut niveau, prise en charge native de l’infrastructure as code, mise en place simple des pipelines. |
| Scripts avancés | PowerShell | Scripts flexibles, création d’outils, contrôle approfondi des ressources Azure. |
| Gestion multiplateforme | Azure CLI | Fonctionne sous Linux, macOS et Windows, développé en Python, idéal pour les environnements hétérogènes. |
Si PowerShell excelle dans les tâches d’administration lourdes et orientées objet ainsi que dans les intégrations poussées à Windows, Azure CLI l’emporte dans les pipelines conteneurisés grâce à sa sortie texte directe, à des temps d’exécution plus rapides pour les opérations légères en masse et à sa compatibilité native avec Bash.
Installation et configuration d’Azure CLI
Avant d’automatiser votre infrastructure cloud, vous devez vous assurer que l’interface Azure CLI est correctement installée et authentifiée dans votre environnement de déploiement. Heureusement, l’installation est simple, quel que soit votre système d’exploitation.
Si vous configurez un poste local ou une machine virtuelle servant d’agent de build sous Windows, vous pouvez installer l’interface CLI à l’aide de PowerShell :
Invoke-WebRequest -Uri https://aka.ms/installazurecliwindows -OutFile .\AzureCLI.msi; Start-Process msiexec.exe -Wait -ArgumentList '/I AzureCLI.msi /quiet'; rm .\AzureCLI.msiPour les runners CI/CD basés sur Linux (comme les runners Ubuntu standard de GitHub Actions), l’installation peut être réalisée en une seule étape à l’aide du dépôt de paquets Microsoft, ou vous pouvez tirer parti des environnements de runners préinstallés qui incluent déjà Azure CLI par défaut. Une fois l’outil installé, vérifiez simplement votre installation en exécutant :
az --versionPour l’authentification dans les pipelines, évitez les connexions interactives via le navigateur. Configurez plutôt votre pipeline pour vous authentifier de manière sécurisée à l’aide d’un principal de service ou d’une identité managée :
az login --service-principal -u $AZURE_CLIENT_ID -p $AZURE_CLIENT_SECRET --tenant $AZURE_TENANT_IDSyntaxe et commandes essentielles d’Azure CLI
La force d’Azure CLI réside dans sa syntaxe intuitive et prévisible. Chaque commande commence par l’espace de noms az, suivi du groupe de ressources ou du service, et enfin de l’action à effectuer. Cette structure de commandes à plat facilite remarquablement l’écriture et la lecture des scripts de pipeline.
Voici quelques commandes de base fréquemment utilisées dans l’automatisation cloud :
# 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.jsonPar défaut, les commandes Azure CLI renvoient des charges utiles JSON propres. Il est ainsi très simple d’interroger des propriétés spécifiques à l’aide des expressions JMESPath intégrées (--query) et de transmettre ces valeurs aux étapes suivantes de votre workflow CI/CD.
Automatiser les déploiements avec Azure CLI
L’automatisation est le cœur du DevOps. Lorsque vous déployez des applications sur Azure, vous souhaitez rarement recourir à des clics manuels dans le portail Azure. En encapsulant votre logique de déploiement dans des scripts Azure CLI, vous garantissez une cohérence absolue entre les environnements de développement, de préproduction et de production.
Imaginez que vous deviez provisionner un nouveau service Azure App Service, mettre à jour ses paramètres de configuration et déployer votre code à chaque fusion dans la branche principale. Un script automatisé utilisant Azure CLI rend cette opération très simple :
# 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..."
Comme ces commandes sont idempotentes, les exécuter plusieurs fois ne compromettra pas votre infrastructure ; elles garantissent au contraire que l’environnement cible correspond à l’état de configuration souhaité.
Intégrer Azure CLI aux pipelines CI/CD
Intégrer les commandes Azure CLI à des orchestrateurs CI/CD populaires comme GitHub Actions ou Azure DevOps Pipelines est remarquablement simple. Comme les agents de pipeline exécutent généralement des scripts shell, vous pouvez intégrer directement vos commandes `az` standard dans les fichiers de configuration de votre workflow.
Voici un exemple d’extrait de fichier de workflow GitHub Actions qui se connecte à Azure et déploie une application web :
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
En combinant des actions de runner officielles avec des commandes Azure CLI brutes, vous créez un pipeline de déploiement robuste, auditable et automatisé, qui s’exécute de manière fluide à chaque modification du code.
Bonnes pratiques pour optimiser le DevOps avec Azure CLI
Pour tirer le meilleur parti de votre automatisation Azure CLI et garder vos pipelines CI/CD sécurisés et performants, appliquez ces bonnes pratiques éprouvées :
- Ne codez jamais de secrets en dur : stockez systématiquement vos identifiants de principal de service, chaînes de connexion et clés d’API dans le gestionnaire de secrets sécurisé de votre plateforme CI/CD (par exemple GitHub Secrets ou les groupes de variables Azure DevOps).
- Épinglez vos versions de CLI : les environnements cloud évoluent rapidement. Pour éviter des changements cassants inattendus dans vos pipelines, définissez explicitement la version d’Azure CLI que vos agents de build doivent utiliser.
- Exploitez l’interrogation JSON : utilisez le paramètre
--queryintégré pour extraire des identifiants ou des points de terminaison spécifiques des sorties de commandes, plutôt que d’écrire des expressions régulières complexes ou des scripts d’analyse externes. - Gardez vos scripts idempotents : concevez vos commandes CLI de sorte qu’elles puissent être exécutées de façon répétée sans effets de bord indésirables ni erreurs de duplication de ressources.
- Nettoyez les environnements de test : utilisez des scripts de suppression automatisés dans vos pipelines de pull request pour supprimer les groupes de ressources temporaires et éviter l’accumulation de coûts cloud inutiles.
Conclusion
Intégrer Azure CLI à vos pipelines CI/CD change la donne pour les équipes DevOps modernes. Sa légèreté, sa compatibilité multiplateforme et sa syntaxe intuitive en font le compagnon idéal de déploiements cloud rapides et automatisés. En combinant des pratiques d’authentification sécurisées, des scripts bien structurés et une intégration robuste aux pipelines, vous pouvez atteindre un niveau inédit de rapidité et de fiabilité tout au long du cycle de livraison de vos logiciels.
Pour aller encore plus loin sur ce sujet et écouter un débat animé sur les philosophies des lignes de commande, découvrez notre épisode de podcast associé : Azure CLI vs PowerShell: Which Should You Use?. Maîtrisez ces deux outils, comprenez leurs atouts respectifs et prenez le contrôle total de votre architecture cloud Azure dès aujourd’hui !