Ce que vous devez faire:
Dans cet exercice, vous allez déployer une machine virtuelle Linux (Ubuntu) dans le portail Azure, y installer automatiquement le serveur Web Nginx à l’aide d’une extension de script, diagnostiquer un problème de connectivité réseau à l’aide du Cloud Shell, puis ajuster les règles de sécurité pour autoriser l’accès à votre serveur depuis Internet.
Temps appromatif: 20 minutes
Prérequis:
Pour cette exercice vous devez avoir un acces a Microsoft Azure
Objectif: Déployer l’infrastructure de base (Groupe de ressources et VM)
Explication:
La première étape consiste à créer une boîte logique appelée « Groupe de ressources » pour contenir tous nos composants, puis à provisionner notre machine virtuelle Linux. À cette étape, nous laisserons les accès réseau fermés par défaut (sauf SSH) pour simuler un cas réel de dépannage réseau.
Tache 1: Créer le groupe de ressources
- Connectez-vous au Portail Azure.
- Dans le menu de recherche supérieur, saisissez Groupes de ressources et sélectionnez-le.
- Cliquez sur le bouton Créer.
- Configurez les options suivantes :
- Abonnement : Choisissez votre abonnement actif.
- Nom du groupe de ressources : Saisissez
IntroAzureRG. - Région : Sélectionnez une région proche de chez vous (ex: Canada Central).
- Cliquez sur Vérifier + créer, puis confirmez avec Créer.
Tache 2: Déployer la machine virtuelle Linux
- Cliquez sur le bouton Accueil en haut à gauche.
- Sélectionnez Créer une ressource, puis sous la catégorie Services d’infrastructure, cliquez sur Machine virtuelle.
- Complétez l’onglet Général avec les paramètres ci-dessous (laissez les autres valeurs par défaut) :
| Paramètre | Valeur |
| Abonnement | Même abonnement qu’à la tâche 1 |
| Groupe de ressources | Sélectionnez IntroAzureRG |
| Nom de la machine virtuelle | my-vm |
| Région | Choisissez la même région que votre groupe de ressources |
| Options de disponibilité / Type de sécurité | Laissez par défaut |
| Image | Sélectionnez l’image par défaut (ex: Ubuntu Server 22.04 LTS) |
| Taille | Laissez la taille standard proposée par défaut |
| Type d’authentification | Sélectionnez Mot de passe |
| Nom d’utilisateur | Saisissez azureuser |
| Mot de passe / Confirmer | Définissez un mot de passe robuste (et notez-le) |
| Ports d’entrée publics | Laissez par défaut (seul le port SSH 22 est généralement ouvert par défaut) |
- Cliquez directement sur le bouton bleu Vérifier + créer au bas de la page, puis cliquez sur Créer.
- Patientez quelques instants jusqu’à ce que l’écran affiche Votre déploiement est terminé avant de passer à la suite.
Objectif: Installer le serveur Web et analyser le blocage réseau
Explication:
Une fois la VM en marche, nous allons utiliser une extension de script pour installer automatiquement le serveur Web Nginx depuis la ligne de commande Azure Cloud Shell. Nous tenterons ensuite d’accéder au serveur pour constater que la connexion échoue en raison des restrictions de sécurité par défaut.
Tache 1: Installer Nginx à l’aide d’une extension de script
-
Ouvrez l’Azure Cloud Shell en cliquant sur l’icône de terminal (
>_) située dans la barre d’outils supérieure du portail. -
Assurez-vous que l’environnement est configuré sur Bash (si l’invite indique PowerShell, utilisez le menu déroulant en haut à gauche de la console pour basculer vers Bash).
-
Copiez et collez la commande suivante dans votre terminal pour déployer l’extension et installer Nginx :
Bash az vm extension set \ --resource-group "IntroAzureRG" \ --vm-name my-vm \ --name customScript \ --publisher Microsoft.Azure.Extensions \ --version 2.1 \ --settings '{"fileUris":["https://raw.githubusercontent.com/MicrosoftDocs/mslearn-welcome-to-azure/master/configure-nginx.sh"]}' \ --protected-settings '{"commandToExecute": "./configure-nginx.sh"}' - Attendez la fin de l’exécution du script (ce processus installe le paquet Nginx et crée une page d’accueil d’accueil personnalisée contenant le nom de votre VM).
Tache 2: Tester l’accès au serveur Web (Échec attendu)
-
Dans le même terminal Cloud Shell, récupérez l’adresse IP publique de votre machine virtuelle et stockez-la dans une variable système en exécutant cette commande :
Bash IPADDRESS="$(az vm list-ip-addresses \ --resource-group "IntroAzureRG" \ --name my-vm \ --query "[].virtualMachine.network.publicIpAddresses[*].ipAddress" \ --output tsv)"
-
Envoyez une requête test vers votre serveur avec une limite d’attente de 5 secondes :
Bash curl –connect-timeout 5 http://$IPADDRESS-
Résultat : Après 5 secondes, vous devriez obtenir une erreur de type
Connection timed out.
-
-
Pour tester depuis votre poste local, affichez l’adresse IP à l’écran :
Bash echo $IPADDRESS
- Copiez cette adresse IP, ouvrez un nouvel onglet dans votre navigateur Web, collez-la et essayez de charger la page. Vous constaterez que le site refuse de charger. Gardez cet onglet ouvert.
Objectif: Configurer le groupe de sécurité réseau (NSG)
Explication:
La connexion échoue car le pare-feu Azure (le Groupe de sécurité réseau ou NSG) bloque toutes les demandes entrantes à l’exception de la connexion d’administration SSH (port 22). Nous allons lister ces règles depuis le Cloud Shell, puis créer une nouvelle règle pour ouvrir le port HTTP (80).
Tache 1: Inspecter les règles de sécurité actuelles
-
Dans le Cloud Shell, récupérez le nom du groupe de sécurité réseau (NSG) lié à votre VM :
Bash
NSGID="$(az network nic list \
--resource-group "IntroAzureRG" \
--query "[?virtualMachine.id && contains(virtualMachine.id, '/my-vm')].networkSecurityGroup.id | [0]" \
--output tsv)"
NSGNAME="${NSGID##*/}"
echo $NSGNAME
- Affichez la table des règles actives pour comprendre l’état de filtrage :
-
Bash az network nsg rule list \ --resource-group "IntroAzureRG" \ --nsg-name "$NSGNAME" \ --query '[].{Nom:name, Priorite:priority, Port:destinationPortRange, Acces:access}' \ --output tableObservation : Vous remarquerez que seule la règle autorisant le port
22(SSH) est présente. Le trafic Web (port 80) est donc rejeté par défaut.
-
Tache 2: Ajouter une règle pour autoriser le trafic HTTP (Port 80)
-
Créez une nouvelle règle nommée
allow-httpavec une priorité élevée (100) pour ouvrir le port 80 en exécutant cette commande :
Bash az network nsg rule create \ --resource-group "IntroAzureRG" \ --nsg-name "$NSGNAME" \ --name allow-http \ --protocol tcp \ --priority 100 \ --destination-port-range 80 \ --access Allow
-
Vérifiez que la règle a bien été ajoutée à la table en relançant l’affichage des règles :
Bash
az network nsg rule list \
--resource-group "IntroAzureRG" \
--nsg-name "$NSGNAME" \
--query '[].{Nom:name, Priorite:priority, Port:destinationPortRange, Acces:access}' \
--output table
-
Résultat attendu : Vous devriez maintenant voir deux lignes :
SSH(port 22) etallow-http(port 80).
Tache 3: Valider l’accès à votre site Web
-
Depuis le Cloud Shell, tentez à nouveau d’interroger la VM à l’aide de l’outil curl :
Bash curl --connect-timeout 5 http://$IPADDRESS
- Résultat attendu : Vous devriez recevoir en réponse le code HTML suivant :
<html><body><h2>Welcome to Azure! My name is my-vm.</h2></body></html> -
Retournez sur l’onglet de votre navigateur où vous aviez collé l’adresse IP publique et rafraîchissez la page. La page de bienvenue personnalisée de votre serveur Web Nginx s’affiche maintenant correctement !
Un peu de nettoyage:
Pour éviter des frais inutiles sur votre abonnement Azure, supprimez l’ensemble des ressources créées pour ce laboratoire.
-
Dans le volet de gauche du portail Azure, cliquez sur Groupes de ressources.
-
Sélectionnez le groupe de ressources nommé
IntroAzureRG. -
Dans la barre d’outils supérieure, cliquez sur Supprimer le groupe de ressources.
-
Cochez la case pour appliquer la suppression forcée des machines virtuelles associées si l’option apparaît.
-
Saisissez le nom du groupe
IntroAzureRGpour confirmer votre action, puis cliquez sur Supprimer.
La video.
A venir
