Cas pratiques

Créer et piloter une VM Ubuntu sur Azure

Un environnement à un hôte, sans pack applicatif : construire l'image, démarrer la VM Azure, y ouvrir un shell, puis la détruire.

Ce tutoriel crée un environnement xbee à un seul hôte — une VM Azure ubuntu:24.04, sans aucun pack applicatif — et la pilote de bout en bout : construction de l’image, démarrage, connexion shell, arrêt, destruction. Il suit exactement la même suite de commandes que Créer et piloter une VM Ubuntu sur AWS : seuls le provider déclaré et ses champs propres changent — voir Providers & volumes.

Prérequis : les identifiants Azure

Le binaire du provider azure s’authentifie via un principal de service (service principal), identifié par quatre variables d’environnement standard du SDK Azure :

export AZURE_TENANT_ID=<tenant-id>
export AZURE_CLIENT_ID=<client-id>
export AZURE_CLIENT_SECRET=<client-secret>
export AZURE_SUBSCRIPTION_ID=<subscription-id>

Le plus simple est de les regrouper dans un fichier (par exemple ~/.azure/xbee-sp.env, en dehors de tout dépôt versionné) et de le sourcer avant d’utiliser xbee :

source ~/.azure/xbee-sp.env

Créer l’environnement

mkdir vm-azure
cd vm-azure
xbee new env -p azure -s ubuntu:24.04

Le xbee-env.yaml généré

schema-version: "1.0"
provider:
  name: azure
default:
  host:
    system: ubuntu:24.04
    net: xbee-net

host: a

Selon la configuration locale (~/xbee.yml), default.host.provider peut déjà contenir des valeurs par défaut pour Azure, ou rester absent. Dans tous les cas, assurez-vous d’obtenir les champs suivants, propres à Azure — voir Providers & volumes :

default:
  host:
    system: ubuntu:24.04
    net: xbee-net
    provider:
      subscriptionId: <subscription-id>
      resourceGroup: mon-groupe-de-ressources
      location: westeurope
      vmSize: Standard_D2s_v3
      size: 30

host: a
  • subscriptionId / resourceGroup / location situent la VM ; vmSize en choisit le gabarit ; size est la taille (en Go) du disque racine. Le groupe de ressources doit déjà exister côté Azure.
  • host: a déclare un unique hôte, sans pack : rien d’autre que le système ubuntu:24.04 n’y est installé.

Construire l’image

xbee pack

xbee démarre une VM Azure temporaire, y installe le système requis, capture le résultat en image, puis détruit cette VM temporaire. Cette image est ensuite réutilisée par tous les futurs xbee up, tant que la définition du système ne change pas. xbee up refuse de démarrer tant que cette étape n’a pas été faite.

Démarrer la VM

xbee up

démarre la VM à partir de l’image construite à l’étape précédente, attend qu’elle soit joignable en SSH, puis exécute les directives up/configure de l’environnement — aucune ici.

Piloter la VM

xbee enter a

ouvre un shell SSH dans la VM — a est la clé de l’hôte déclarée dans xbee-env.yaml. Avec un seul hôte, le nom peut être omis (xbee enter).

lsb_release -a

Arrêter puis détruire la VM

xbee down

éteint la VM sans la supprimer : un nouvel xbee up la redémarre, en repartant de la même image. Pour supprimer la VM elle-même (pas l’image, réutilisable par un futur xbee up) :

xbee delete

demande confirmation ; --force/-f la saute.

Pour aller plus loin