Cheatsheet de la CLI Azure (`az`) : authentification, gestion des subscriptions, déploiement de ressources, manipulation de groupes de ressources, VMs, storage, et opérations IaC courantes.
### 🚀 Pré-requis
- **Installer Azure CLI** : [Documentation officielle](https://docs.microsoft.com/fr-fr/cli/azure/install-azure-cli)
#### Se connecter à Azure
```powershell
az login
```
#### Changer d’abonnement
```powershell
az account set --subscription "Nom_de_l'abonnement"
```
#### Afficher l’abonnement courant
```powershell
az account show
```
---
### 🥞 Gestion des Groupes de Ressources
#### Lister les groupes de ressources
```powershell
az group list --output table
```
#### Créer un groupe de ressources
```powershell
az group create --name MyResourceGroup --location eastus
```
#### Supprimer un groupe de ressources
```powershell
az group delete --name MyResourceGroup --yes
```
#### Afficher les détails d’un groupe de ressources
```powershell
az group show --name MyResourceGroup
```
---
### 💻 Gestion des Machines Virtuelles (VM)
#### Créer une VM
```powershell
az vm create --resource-group MyResourceGroup --name MyVM --image UbuntuLTS --admin-username azureuser --generate-ssh-keys
```
#### Démarrer une VM
```powershell
az vm start --resource-group MyResourceGroup --name MyVM
```
#### Arrêter une VM
```powershell
az vm stop --resource-group MyResourceGroup --name MyVM
```
#### Redémarrer une VM
```powershell
az vm restart --resource-group MyResourceGroup --name MyVM
```
#### Supprimer une VM
```powershell
az vm delete --resource-group MyResourceGroup --name MyVM --yes
```
#### Lister toutes les VM dans un groupe de ressources
```powershell
az vm list --resource-group MyResourceGroup --output table
```
#### Afficher les informations détaillées d’une VM
```powershell
az vm show --resource-group MyResourceGroup --name MyVM --show-details
```
#### Obtenir l'adresse IP publique d’une VM
```powershell
az vm list-ip-addresses --resource-group MyResourceGroup --name MyVM --output table
```
---
### 💾 Gestion des Disques
#### Lister les disques d’un groupe de ressources
```powershell
az disk list --resource-group MyResourceGroup --output table
```
#### Créer un disque managé
```powershell
az disk create --resource-group MyResourceGroup --name MyDisk --size-gb 128
```
#### Supprimer un disque
```powershell
az disk delete --resource-group MyResourceGroup --name MyDisk --yes
```
---
### 🗃️ Gestion des Comptes de Stockage
#### Lister les comptes de stockage
```powershell
az storage account list --output table
```
#### Créer un compte de stockage
```powershell
az storage account create --name mystorageaccount --resource-group MyResourceGroup --location eastus --sku Standard_LRS
```
#### Obtenir les clés d’accès d’un compte de stockage
```powershell
az storage account keys list --resource-group MyResourceGroup --account-name mystorageaccount --output table
```
#### Supprimer un compte de stockage
```powershell
az storage account delete --name mystorageaccount --resource-group MyResourceGroup --yes
```
---
### 🌐 Gestion des Réseaux
#### Créer un Virtual Network (VNet)
```powershell
az network vnet create --name MyVNet --resource-group MyResourceGroup --subnet-name MySubnet
```
#### Ajouter un sous-réseau
```powershell
az network vnet subnet create --resource-group MyResourceGroup --vnet-name MyVNet --name MyNewSubnet --address-prefix 10.0.1.0/24
```
#### Créer une adresse IP publique
```powershell
az network public-ip create --resource-group MyResourceGroup --name MyPublicIP
```
#### Créer un Network Security Group (NSG)
```powershell
az network nsg create --resource-group MyResourceGroup --name MyNSG
```
#### Ajouter une règle au NSG
```powershell
az network nsg rule create --resource-group MyResourceGroup --nsg-name MyNSG --name AllowSSH --protocol Tcp --direction Inbound --priority 1000 --source-address-prefix '*' --source-port-range '*' --destination-address-prefix '*' --destination-port-range 22 --access Allow
```
---
### 🗄️ Gestion des Bases de Données (SQL)
#### Créer un serveur SQL
```powershell
az sql server create --name myserver --resource-group MyResourceGroup --location eastus --admin-user myadmin --admin-password SecurePassword123!
```
#### Créer une base de données SQL
```powershell
az sql db create --resource-group MyResourceGroup --server myserver --name mydatabase --service-objective S0
```
#### Lister les bases de données SQL d’un serveur
```powershell
az sql db list --resource-group MyResourceGroup --server myserver --output table
```
#### Supprimer une base de données SQL
```powershell
az sql db delete --resource-group MyResourceGroup --server myserver --name mydatabase --yes
```
---
### 🤼 Gestion des Utilisateurs Azure AD
#### Lister tous les utilisateurs
```powershell
az ad user list --output table
```
#### Créer un nouvel utilisateur
```powershell
az ad user create --display-name "John Doe" --user-principal-name
[email protected] --password "SecurePassword123!"
```
#### Supprimer un utilisateur
```powershell
az ad user delete --id
[email protected]
```
---
### ⚠️ Gestion des Règles d’Alertes
#### Créer une règle d’alerte sur une VM (CPU > 80%)
```powershell
az monitor metrics alert create --name "HighCPUAlert" --resource-group MyResourceGroup --scopes "/subscriptions/<subscription-id>/resourceGroups/MyResourceGroup/providers/Microsoft.Compute/virtualMachines/MyVM" --condition "avg Percentage CPU > 80" --description "Alerte lorsque le CPU dépasse 80%" --action-group "MyActionGroup"
```
#### Lister les alertes
```powershell
az monitor alert list --output table
```
---
### 💾 Gestion des Sauvegardes
#### Créer un Recovery Vault
```powershell
az backup vault create --resource-group MyResourceGroup --name MyRecoveryVault --location eastus
```
#### Configurer la protection d’une VM
```powershell
az backup protection enable-for-vm --resource-group MyResourceGroup --vault-name MyRecoveryVault --vm MyVM --policy-name DefaultPolicy
```
#### Démarrer une sauvegarde manuelle
```powershell
az backup protection backup-now --resource-group MyResourceGroup --vault-name MyRecoveryVault --container-name MyContainer --item-name MyVM --retain-until 30-12-2024
```