Déployer des ressources Azure avec Azure CLI

Oguzhan YIGIT
Publié par Oguzhan YIGIT
Catégorie : Bicep / DevOps / Template ARM
09/09/2024

Pour déployer des ressources Azure, Azure CLI reste l’un de mes outils favoris. En effet, selon moi, il est très simple, bien documenté, léger, et peut tourner à peu près n’importe où. Donc je l’utilise personnellement depuis mes machines de développement jusqu’au pipeline de déploiement CI/CD. Outre, les commandes qui permettent directement de créer ou manipuler les ressources Azure, Azure CLI permet également le déploiement de scripts ARM ou Bicep.

 

Installer Azure CLI

Pour utiliser Azure CLI depuis votre machine de développement, vous devez d’abord l’installer : installer Azure CLI

Et bien entendu, sur un environnement de déploiement automatisé (type GitHub, GitLab…), le plus simple est d’utiliser un agent de déploiement ou une image docker qui inclut Azure CLI.

 

Authentification avec Azure CLI

Pour se connecter a Azure avec Azure CLI, il faut utiliser la commande az login. Plusieurs méthodes d’authentification existent. La liste complète est donnée par la documentation Microsoft. Personnellement, j’utilise régulièrement :

  • Le mode interactif
  • Un service principal

Mais bien évidemment, quel que ce soit le mode d’authentification, le compte doit être autorisé à effectuer les opérations scriptés.

 

Authentification en mode interactif

Ce mode est particulièrement utile pendant la phase de développement. Avec ce mode, vous vous authentifiez personnellement avec un compte Entra ID et vous pouvez tester vos scripts directement depuis votre machine de développement. Cependant :

    • Votre compte utilisateur doit être autorisé à faire la manipulation que vous souhaitez
    • Sur un environnement automatisé type GitHub, vous ne pouvez pas utiliser ce mécanisme
az login

Cette commande az cli lance un processus d’authentification via votre navigateur par défaut. Une fois l’authentification effectué sur le navigateur, vous pouvez retourner sur votre console.

 

Authentification à l’aide d’un Service Principal

Ce mode peut être utilisé depuis votre machine de développement et/ou depuis une plateforme type DevOps.

az login --service-principal -u $SP_CICD_CLIENT_ID -p "$CLIENT_SECRET_OR_CERTIFICATE_PATH" -t "$TENANT_ID"

Pour réaliser cette authentification, vous devez obtenir un secret client ou un certificat ssl associé au service principal. Plus d’informations sur la commande az login: https://learn.microsoft.com/en-us/cli/azure/authenticate-azure-cli

Définir l’abonnement de travail

Après authentification, la commande « az account set » permettra de se positionner sur l’abonnement Azure sur lequel vous souhaitez déployer vos ressources

az account set -s $AZURE_SUBSCRIPTION_ID

 

Deployer des services avec Az CLI

Après authentification et positionnement sur le bon abonnement, vous pouvez déployer des ressources Azure avec Az CLI soit :

  • en utilisant des commandes Az CLI dédié à la manipulation de ressources (par exemple, « az appservice plan create » pour créer un App Service Plan)
  • en utilisant des scripts type ARM ou BICEP à l’aide de la commande « az deployment group create »

Dans l’exemple ci-dessous, la commande az deployment group create permet de déployer un script bicep sur un groupe de ressources :

az deployment group create --resource-group "$RG_NAME" --template-file "./template.bicep" --parameters "./template.parameters.$ENVIRONMENT.json"

Notez, que l’option « –parameters » offre la possibilité de fournir un fichier de paramètres ou directement des paires clé/valeur. Cela est très utile pour variabiliser vos scripts en fonction de vos environnement.