Machines virtuelles
Une machine virtuelle Azure (VM) est un serveur hébergé dans le cloud Microsoft. Elle dispose d'un OS complet, de CPU, de RAM et de stockage — exactement comme un serveur physique, mais entièrement géré à distance. Tu choisis la taille, l'image OS et tu peux la démarrer en quelques minutes.
Séries et tailles de VM
Azure propose des centaines de tailles regroupées en séries. Chaque série est optimisée pour un usage particulier. Le nom suit un schéma logique : la lettre indique la famille, le chiffre indique la génération, et le suffixe précise des variantes (disque local, mémoire étendue, etc.).
Les familles principales
| Série | Usage typique | Exemple |
|---|---|---|
| B-series | Dev, test, petits serveurs web — charge CPU variable, facturation à la consommation du burst | Standard_B2s (2 vCPU, 4 Go RAM) |
| D-series | Usage général, applications d'entreprise, bases de données légères | Standard_D4s_v5 (4 vCPU, 16 Go RAM) |
| F-series | Calcul intensif, gaming, rendu — ratio CPU/RAM élevé | Standard_F8s_v2 (8 vCPU, 16 Go RAM) |
| E-series | Mémoire optimisée — bases de données lourdes, SAP | Standard_E16s_v5 (16 vCPU, 128 Go RAM) |
| N-series | GPU — IA, rendu 3D, visualisation | Standard_NC6s_v3 |
Images disponibles
Une image est le modèle de départ de ta VM : elle contient l'OS pré-installé et parfois des logiciels additionnels. Azure Marketplace en propose plusieurs centaines.
Images courantes
- Ubuntu Server 24.04 LTS — le choix numéro 1 pour Linux sur Azure, publié par Canonical
- Ubuntu Server 22.04 LTS — stable, très documenté, recommandé en production
- Debian 12 — minimaliste, idéale pour les serveurs légers
- Windows Server 2022 Datacenter — pour les environnements Microsoft (Active Directory, IIS, SQL Server)
- Windows Server 2019 — encore très répandu en entreprise
- Red Hat Enterprise Linux (RHEL) 9 — distribution d'entreprise, intégration support Microsoft/Red Hat
- Rocky Linux / AlmaLinux — alternatives RHEL libres et gratuites
Images personnalisées (Shared Image Gallery)
Tu peux créer ta propre image à partir d'une VM existante que tu as configurée (logiciels installés, configuration appliquée), puis la stocker dans la Shared Image Gallery pour la réutiliser ou la partager avec d'autres abonnements. Très utile pour déployer rapidement plusieurs VM identiques.
Créer une VM avec le portail Azure
Le portail Azure propose un assistant de création guidé. Voici les étapes clés à renseigner.
Étape 1 — Informations de base
- Abonnement : l'abonnement Azure à facturer (ex. Azure for Students ou Pay-As-You-Go)
- Groupe de ressources : le conteneur logique où sera placée la VM (crées-en un nouveau ou utilises-en un existant)
- Nom de la VM : ex.
vm-monlab-01 - Région : le datacenter Azure où sera hébergée la VM (ex. France Central ou West Europe). Choisis la région la plus proche de tes utilisateurs
- Options de disponibilité : pour démarrer, laisse sur Aucune redondance
- Image : choisis l'OS (ex. Ubuntu Server 24.04 LTS)
- Taille : clique sur Voir toutes les tailles et sélectionne la série adaptée (ex. Standard_B2s)
Étape 2 — Authentification
- Linux : choisis Clé publique SSH (recommandé) ou mot de passe. Azure peut générer la paire de clés pour toi.
- Windows : choisis un nom d'utilisateur et un mot de passe fort (utilisé pour RDP).
Étape 3 — Réseau
Azure crée automatiquement un réseau virtuel (VNet), un sous-réseau et une IP publique. Un Network Security Group (NSG) est attaché à la carte réseau, avec par défaut le port SSH (22) ou RDP (3389) ouvert selon l'OS.
Étape 4 — Disques et options avancées
Tu peux ajouter des disques de données supplémentaires, choisir le type de disque OS (SSD Premium, SSD Standard, HDD Standard) et activer la surveillance. Pour un lab, les valeurs par défaut conviennent.
Clique sur Vérifier + créer, valide la synthèse et confirme. La VM sera déployée en 1 à 3 minutes.
Créer une VM avec Azure CLI
L'Azure CLI permet de scripter la création de VM et de l'automatiser. C'est l'approche privilégiée en infrastructure-as-code et en homelab.
Prérequis : se connecter et choisir son abonnement
# Connexion interactive (ouvre le navigateur)
az login
# Lister les abonnements disponibles
az account list --output table
# Sélectionner l'abonnement voulu
az account set --subscription "Mon abonnement Azure"
Créer un groupe de ressources
az group create \
--name rg-monlab \
--location francecentral
Créer une VM Linux (Ubuntu)
az vm create \
--resource-group rg-monlab \
--name vm-ubuntu-01 \
--image Ubuntu2404 \
--size Standard_B2s \
--admin-username azureuser \
--generate-ssh-keys \
--output json
Le flag --generate-ssh-keys crée automatiquement une paire de clés SSH dans ~/.ssh/ si elle n'existe pas déjà, et injecte la clé publique dans la VM. L'IP publique de la VM est retournée dans la sortie JSON.
Créer une VM Windows Server
az vm create \
--resource-group rg-monlab \
--name vm-win-01 \
--image Win2022Datacenter \
--size Standard_B2ms \
--admin-username azureadmin \
--admin-password "MonMotDePasse2024!" \
--output json
az vm image list --location francecentral --output table. Ajoute --all pour voir le catalogue complet (attention, la liste est longue !).
Ouvrir un port dans le NSG
# Ouvrir le port HTTP 80
az vm open-port \
--resource-group rg-monlab \
--name vm-ubuntu-01 \
--port 80
# Ouvrir un port personnalisé (ex. 8080)
az vm open-port \
--resource-group rg-monlab \
--name vm-ubuntu-01 \
--port 8080 \
--priority 110
Se connecter à une VM
SSH — connexion Linux
Récupère d'abord l'IP publique de ta VM, puis connecte-toi avec SSH.
# Obtenir l'IP publique via CLI
az vm show \
--resource-group rg-monlab \
--name vm-ubuntu-01 \
--show-details \
--query publicIps \
--output tsv
# Se connecter en SSH (clé générée par Azure CLI)
ssh azureuser@20.XX.XX.XX
# Si la clé est dans un chemin personnalisé
ssh -i ~/.ssh/ma-cle.pem azureuser@20.XX.XX.XX
RDP — connexion Windows
Sur Windows, ouvre le Bureau à distance (mstsc) et saisis l'IP publique de la VM suivie du port 3389. Connecte-toi avec le nom d'utilisateur et le mot de passe définis à la création.
Sur macOS et Linux, installe Microsoft Remote Desktop (disponible sur le Mac App Store) ou utilise remmina / xfreerdp.
# Connexion RDP depuis Linux avec xfreerdp
xfreerdp /v:20.XX.XX.XX /u:azureadmin /p:"MonMotDePasse2024!" /f
Azure Bastion — connexion sécurisée sans IP publique
Azure Bastion est un service managé qui agit comme un jump host. Il permet de se connecter à une VM directement depuis le navigateur (portail Azure), sans exposer de port SSH ou RDP sur Internet. La VM n'a même pas besoin d'IP publique.
- Déployé au niveau du VNet (un Bastion par VNet)
- Accès SSH ou RDP via HTTPS dans le navigateur
- Niveau Basic : connexion par clé ou mot de passe
- Niveau Standard : tunneling, copier-coller, partage de fichiers
Gérer les disques
Types de disques
- OS Disk : disque système, créé automatiquement avec la VM. Contient l'OS et le bootloader.
- Data Disk : disque de données supplémentaire, à monter manuellement dans l'OS. Indépendant du cycle de vie de la VM.
- Temporary Disk : disque local SSD, non persistent — les données sont perdues à l'arrêt ou au redémarrage de la VM. Utilisé pour le swap ou les fichiers temporaires.
Types de performance
- HDD Standard — le moins cher, pour les sauvegardes et les données rarement accédées
- SSD Standard — bon compromis coût/performance pour les charges légères
- SSD Premium — pour les bases de données et les applications nécessitant une faible latence
- Ultra Disk — pour les charges les plus exigeantes (IOPS très élevés)
Ajouter un disque de données
# Ajouter un disque SSD Standard de 128 Go
az vm disk attach \
--resource-group rg-monlab \
--vm-name vm-ubuntu-01 \
--name disk-data-01 \
--size-gb 128 \
--sku Standard_LRS \
--new
# Sous Linux, initialiser et monter le disque
# (après connexion SSH à la VM)
sudo fdisk -l # repérer le nouveau disque (ex. /dev/sdc)
sudo mkfs.ext4 /dev/sdc # formater en ext4
sudo mkdir /data
sudo mount /dev/sdc /data # monter le disque
echo "/dev/sdc /data ext4 defaults 0 0" | sudo tee -a /etc/fstab # mount permanent
Créer un snapshot
Un snapshot est une copie ponctuelle d'un disque managé. Il permet de revenir à un état antérieur ou de cloner un disque.
# Obtenir l'ID du disque OS
DISK_ID=$(az vm show \
--resource-group rg-monlab \
--name vm-ubuntu-01 \
--query storageProfile.osDisk.managedDisk.id \
--output tsv)
# Créer un snapshot
az snapshot create \
--resource-group rg-monlab \
--name snapshot-ubuntu-01-avant-maj \
--source "$DISK_ID"
Arrêter vs désallouer une VM
C'est l'un des points les plus importants à comprendre pour maîtriser sa facture Azure.
Arrêter (stopped) ≠ Désallouer (deallocated)
| Action | État Azure | Facturation compute | IP publique |
|---|---|---|---|
Éteindre depuis l'OS (shutdown ou bouton Démarrer/Arrêter Windows) |
Stopped (not deallocated) | Toujours facturée | Conservée |
| Arrêter depuis le portail Azure ou la CLI | Stopped (deallocated) | Non facturée | Libérée (si dynamique) |
sudo poweroff), Azure considère la VM comme Stopped but not deallocated. Tu continues de payer les vCPU et la RAM. Pour ne plus payer, utilise toujours le portail ou la CLI pour désallouer la VM.
# Désallouer une VM (arrêt complet, pas de facturation compute)
az vm deallocate \
--resource-group rg-monlab \
--name vm-ubuntu-01
# Démarrer une VM
az vm start \
--resource-group rg-monlab \
--name vm-ubuntu-01
# Vérifier l'état d'une VM
az vm get-instance-view \
--resource-group rg-monlab \
--name vm-ubuntu-01 \
--query instanceView.statuses[1].displayStatus \
--output tsv
À retenir
- Les VM Azure sont regroupées en séries : B-series pour dev/test, D-series pour usage général, F-series pour calcul intensif.
- Le Marketplace propose des dizaines d'images OS : Ubuntu, Windows Server, Debian, RHEL et bien d'autres.
- On peut créer une VM via le portail Azure (assistant visuel) ou via Azure CLI (
az vm create) pour l'automatisation. - La connexion se fait en SSH pour Linux et en RDP pour Windows. Azure Bastion évite d'exposer ces ports sur Internet.
- Un disque OS, des disques de données et un disque temporaire (non persistant) composent le stockage d'une VM.
- Les snapshots permettent de sauvegarder l'état d'un disque à un instant T.
- Éteindre une VM depuis l'OS ne suffit pas : il faut la désallouer depuis Azure pour arrêter la facturation compute.