Commandes utiles pour la CLI Azure
Quelques scripts/commandes qui peuvent être utiles pour mieux gérer ses resources Azure
Lister toutes les instances de tous les AKS de tous les RG
#!/bin/bash
output_file="aks_vm_sizes.csv"
echo "ResourceGroup,ClusterName,ClusterStatus,NodepoolName,VMSize,Location,NodeCount,IsSpot" > "$output_file"
# Liste tous les clusters AKS
az aks list --query '[].{name:name, resourceGroup:resourceGroup, location:location, status:powerState.code}' -o json | jq -c '.[]' | while read -r cluster; do
name=$(echo "$cluster" | jq -r '.name')
rg=$(echo "$cluster" | jq -r '.resourceGroup')
location=$(echo "$cluster" | jq -r '.location')
status=$(echo "$cluster" | jq -r '.status') # Running or Stopped
# Liste les nodepools pour ce cluster
az aks nodepool list \
--cluster-name "$name" \
--resource-group "$rg" \
--query '[].{name:name, vmSize:vmSize, count:count, priority:scaleSetPriority}' -o json | jq -c '.[]' | while read -r pool; do
pool_name=$(echo "$pool" | jq -r '.name')
vm_size=$(echo "$pool" | jq -r '.vmSize')
count=$(echo "$pool" | jq -r '.count')
priority=$(echo "$pool" | jq -r '.priority')
if [[ "$priority" == "Spot" ]]; then
is_spot="true"
else
is_spot="false"
fi
echo "$rg,$name,$status,$pool_name,$vm_size,$location,$count,$is_spot" >> "$output_file"
done
done
echo "✅ CSV détaillé généré : $output_file"
Nous donne un csv listant tout de ce genre :
Compter le nombre de VM par type
#!/bin/bash
# Fichier temporaire pour collecter les VMSize et counts
tmp_file=$(mktemp)
# Fichier de sortie
output_file="aks_vm_summary.csv"
# Header CSV
echo "VMSize,TotalNodeCount" > "$output_file"
# Liste des clusters AKS
az aks list --query '[].{name:name, resourceGroup:resourceGroup}' -o json | jq -c '.[]' | while read -r cluster; do
name=$(echo "$cluster" | jq -r '.name')
rg=$(echo "$cluster" | jq -r '.resourceGroup')
# Pour chaque nodepool, on récupère la taille et le nombre de nœuds
az aks nodepool list --cluster-name "$name" --resource-group "$rg" --query '[].{vmSize:vmSize, count:count}' -o json | jq -c '.[]' | while read -r pool; do
vm_size=$(echo "$pool" | jq -r '.vmSize')
count=$(echo "$pool" | jq -r '.count')
echo "$vm_size,$count" >> "$tmp_file"
done
done
# Agrégation et export CSV
awk -F',' '{count[$1]+=$2} END {for (vm in count) print vm "," count[vm]}' "$tmp_file" | sort >> "$output_file"
# Nettoyage
rm "$tmp_file"
echo "✅ Résumé CSV généré : $output_file"
Ne prends pas en compte s'il s'agit de VM Spot ou Regular
Exemple output :