Cloud

Créer et piloter une VM Ubuntu sur Scaleway

Choisir un pack système XBee, laisser le provider préparer l'image, puis piloter une instance Scaleway.

Ce tutoriel crée un environnement xbee à un seul hôte — une instance Scaleway 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 la même suite de commandes que le tutoriel Créer et piloter une VM Ubuntu sur AWS : seuls le provider déclaré et ses paramètres propres changent — voir Providers & volumes.

ubuntu:24.04 est un pack système racine XBee, pas un identifiant d’image Scaleway à rechercher ou conserver. Le pack décrit la base attendue et le provider gère l’image native réutilisable.

Prérequis : les identifiants Scaleway

Le binaire du provider scaleway utilise le mécanisme standard d’authentification du SDK Scaleway. Créez une clé API dans la console Scaleway, puis exposez sa clé d’accès et sa clé secrète dans votre shell :

export SCW_ACCESS_KEY=<access-key>
export SCW_SECRET_KEY=<secret-key>

Le plus simple est de conserver ces variables dans un fichier hors de tout dépôt versionné, par exemple ~/.config/scw/xbee.env, puis de le charger avant d’utiliser xbee :

source ~/.config/scw/xbee.env

Le projet cible reste déclaré explicitement dans la configuration xbee. Vous pouvez retrouver son identifiant dans la console Scaleway.

Créer l’environnement

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

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

Le squelette obtenu contient un hôte et reprend les valeurs Scaleway de la configuration globale :

schema-version: "1.0"
provider:
  name: scaleway
  projectId: <project-id>
  zone: fr-par-1
default:
  host:
    system: ubuntu:24.04
    net: xbee-net
    provider:
      commercialType: DEV1-M
      volumeType: sbs_volume
      size: 20

host: a

Si projectId n’est pas encore renseigné dans ~/xbee.yaml, remplacez <project-id> par l’identifiant du projet cible. Vous pouvez aussi enregistrer cette valeur pour les prochains environnements :

xbee config set -p scaleway projectId <project-id>
  • projectId désigne le projet Scaleway dans lequel les ressources seront créées ; zone choisit leur zone de disponibilité.
  • commercialType est le type d’instance ; volumeType le type du volume racine ; size sa taille en Go.
  • host: a déclare un unique hôte sans pack : rien d’autre que le système ubuntu:24.04 n’y est installé.

Les valeurs ci-dessus correspondent aux valeurs intégrées actuelles de xbee. Adaptez notamment la zone et le type d’instance aux ressources disponibles dans votre projet.

Laisser XBee préparer l’image

xbee pack

xbee démarre une instance Scaleway temporaire, y installe le système requis, crée une image à partir de son volume racine, puis détruit cette instance de construction. L’image produite est ensuite réutilisée par les futurs xbee up, tant que la définition du système ne change pas.

xbee up refuse de démarrer l’environnement tant que cette image n’a pas été construite.

Démarrer la VM

xbee up

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

Piloter la VM

xbee enter a

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

xbee enter

Depuis ce shell, l’instance se pilote comme toute machine Ubuntu :

lsb_release -a

Arrêter puis détruire la VM

xbee down

éteint l’instance sans la supprimer. Un nouvel xbee up peut ensuite la redémarrer. Pour supprimer réellement l’instance — mais pas l’image réutilisable par un prochain environnement :

xbee delete

La commande demande confirmation ; --force ou -f permet de la passer.

Pour aller plus loin