Skip to content

II. Spawn des VMs

Dans cette partie, on va spam la création de VM avec Azure. On va voir quelques éléments de config, et plusieurs techniques pour créer la VM.

Quelques précisions avant de commencer :

  • pour nos TPs, quand vous créez des VMs avec Azure, je vous laisse le choix de l'OS

    • ça doit être un OS Linux kanmem fo pa dékonné
    • je recommande l'OS Ubuntu qui est proposé en 22.04 ou 24.04, y'aura tout ce qu'il vous faut dessus
  • n'oubliez pas, dès que vous voulez contacter une VM sur un port, vous devez ouvrir le port dans le Firewall Azure

  • peu importe la partie du TP que vous réalisez, UNE SEULE machine doit avoir une IP publique

    • seule machine exposée sur internet donc
    • vous pouvez vous y connecter en SSH
    • vous vous connecterez en SSH sur les autres, en rebondissant sur la première (avec ssh -J)

🤮🤮 On commence avec la WebUI Azure ! berk

1. Depuis la WebUI

Faites du cliclic partout dans la WebUI Azure pour créer une VM dans Azure.

  • choisissez un nom de user custom
  • utilisez la clé publique générée pendant les prérequis

Clicking intensifies

🌞 Connectez-vous en SSH à la VM pour preuve

  • cette connexion ne doit demander aucun password : votre clé a été ajoutée à votre Agent SSH

2. az : a programmatic approach

La commande az permet de réaliser tout ce que fait la WebUI, mais directement depuis la ligne de commande.

Info

Au cas où j'ai besoin de préciser : bah c'est le feu la ligne de commande. Je peux scripter, faire des boucles, variabiliser des trucs, faire des dingueries.
Créer 50 VMs, ça devient simple et ez, par rapport à la WebUI qui est fastidieuse pour ce genre de tâches.
La commande az fait des requêtes vers l'API de Azure pour tout faire, plus pratique que la WebUI, c'est une approche plus programmatique : on code !

🌞 Créez une VM depuis le Azure CLI : azure1.tp1

  • en utilisant uniquement la commande az donc
  • je vous laisse faire vos recherches pour créer une VM avec la commande az
  • vous devrez préciser :

    • quel utilisateur doit être créé à la création de la VM
    • le fichier de clé utilisé pour se connecter à cet utilisateur
    • comme ça, dès que la VM pop, on peut se co en SSH !
Tip

Je vous recommande d'utiliser le très stylé az interactive qui autocomplète vos commandes az.
Il intègre même une doc ambulante des options et arguments, vraiment cool comme tool :)

Example

Par exemple, une commande simple pour faire ça, elle suppose qu'une clé publique SSH existe dans ~/.ssh/id_ed25519.pub

az group create --location uksouth --name meo
az vm create -g meo -n super_vm --image Ubuntu2204 --admin-username <ton nom de user ici> --ssh-key-values ~/.ssh/id_ed25519.pub

🌞 Assurez-vous que vous pouvez vous connecter à la VM en SSH sur son IP publique

  • une commande SSH fonctionnelle vers la VM sans password toujouuurs because Agent SSH
Warning

Pratique de pouvoir se connecter en utilisant une IP publique comme ça !
En revanche votre offre Azure for Students ne vous donne le droit d'utiliser que 3 adresses IP publiques.
Pensez donc bien à supprimer les ressources au fur et à mesure du TP si besoin.

🌞 Une fois connecté, prouvez la présence...

  • ...du service walinuxagent.service
Note

Ce service est spécifique à Azure. Il permet à Azure d'interagir avec la VM. Genre récupérer des métriques pour la monitorer, ce genre de trucs.

  • ...du service cloud-init.service
Note

cloud-init est un outil très standard et répandu dans tous les environnements Cloud.
Il permet d'effectuer de la configuration automatiquement au premier lancement de la VM.
C'est lui qui a créé votre utilisateur et déposé votre clé pour se co en SSH !
Vous pouvez vérifier qu'il s'est bien déroulé avec la commande cloud-init status.

3. Spawn moar moar moaaar VMs

A. Another VM another friend :d

🌞 Créez une deuxième VM : azure2.tp1

  • avec une commande az
  • elle ne doit PAS avoir d'adresse IP publique

🌞 Affichez des infos au sujet de vos deux VMs

  • avec une/des commande(s) az
  • on doit voir :

    • que azure1.tp1 a une adresse IP publique et une adresse IP privée
    • que azure2.tp1 n'a PAS d'adresse IP publique mais a une adresse IP privée

B. Config SSH client

Tip

Au risque de me répéter, pour faire ça, vous devriez prendre connaissance de mon ptit cours sur SSH.

🌞 Configuration SSH client pour les deux machines

  • vous devez rebondir sur azure1.tp1 (car c'est la seule exposée sur internet) pour accéder à azure2.tp1
  • vous devez utiliser un fichier config SSH client, pour que ces deux commandes fonctionnent juste :
ssh az1 # pour se connecter à azure1.tp1
ssh az2 # pour se connecter à azure2.tp1
  • 📁 dans le compte-rendu, livez-moi juste votre fichier config et les deux commandes SSH fonctionnelles