Cas pratiques
Créer et piloter une VM Ubuntu sur GCP
Un environnement à un hôte, sans pack applicatif : construire l'image, démarrer l'instance Compute Engine, y ouvrir un shell, puis la détruire.
Ce tutoriel crée un environnement xbee à un seul hôte — une instance Compute Engine
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 GCP
Le binaire du provider gcp s’appuie a priori sur le mécanisme standard
d’authentification du SDK Google Cloud (Application Default Credentials) — comme la
CLI gcloud officielle. Le plus simple est :
gcloud auth application-default loginqui écrit des identifiants dans ~/.config/gcloud/application_default_credentials.json,
utilisés par défaut par tout SDK Google Cloud sur la machine — sans qu’il soit besoin de
les référencer explicitement dans xbee-env.yaml ou xbee-secret.yaml.
Ce point n’a pas pu être vérifié dans le code de xbee lui-même : le binaire du provider
gcpest un dépôt séparé. Si l’authentification échoue malgré des identifiants ADC valides, un compte de service dédié (GOOGLE_APPLICATION_CREDENTIALSpointant vers sa clé JSON) reste l’alternative standard à essayer.
Créer l’environnement
mkdir vm-gcp
cd vm-gcp
xbee new env -p gcp -s ubuntu:24.04Le xbee-env.yaml généré
schema-version: "1.0"
provider:
name: gcp
default:
host:
system: ubuntu:24.04
net: xbee-net
host: adefault.host.provider — les champs propres à GCP, voir
Providers & volumes — n’est pas toujours pré-rempli par le
scaffold : à ajouter à la main si besoin, sans image.project/image.family, résolus
automatiquement depuis le pack système (ubuntu:24.04) :
default:
host:
system: ubuntu:24.04
net: xbee-net
provider:
projectId: mon-projet-gcp
zone: europe-west9-b
instanceType: e2-medium
size: 20
host: aprojectIdest le projet GCP cible ;zonesa zone ;instanceTypele gabarit de machine ;sizela taille (en Go) du disque racine.host: adéclare un unique hôte, sanspack: rien d’autre que le systèmeubuntu:24.04n’y est installé.
Construire l’image
xbee packxbee démarre une instance Compute Engine temporaire, y installe le système requis,
capture le résultat en image, puis détruit cette instance 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 updé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/configure de l’environnement —
aucune ici.
Piloter la VM
xbee enter aouvre 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, le nom peut être omis (xbee enter).
lsb_release -aArrêter puis détruire la VM
xbee downéteint l’instance sans la supprimer : un nouvel xbee up la redémarre, en repartant de
la même image. Pour supprimer l’instance elle-même (pas l’image, réutilisable par un
futur xbee up) :
xbee deletedemande confirmation ; --force/-f la saute.
Pour aller plus loin
- Ajouter un pack applicatif à cet hôte (
host.a.pack), exactement comme dans Utiliser le pack dans un environnement. - Déclarer un volume de données — voir Environnements.
- Toutes les propriétés reconnues dans un
xbee-env.yaml— voir xbee-env.yaml. - Le détail complet, commande par commande — voir Créer et piloter une VM Ubuntu sur AWS, identique au-delà du provider.