Premiers pas
Écrire et tester un pack minimal
Un pack « hello » pour manipuler require, var, up/down et command.
Ce tutoriel construit un pack minimal, hello, qui n’a aucune dépendance et se teste
en quelques commandes. Il sert de fil rouge pour parcourir les briques de base d’un
xbee-pack.yaml : système requis, modèle de données, actions de cycle de vie et
commande exposée.
Créer le pack
xbee new pack hello
cd hellocrée un répertoire hello/ contenant un xbee-pack.yaml minimal — voir
Commandes CLI.
Écrire le xbee-pack.yaml
Remplacez son contenu par :
schema-version: "1.0"
description: "Pack de démonstration : écrit un message de bienvenue au démarrage de l'hôte, et l'affiche à la demande."
require: ubuntu:24.04
var:
greeting: "Bonjour depuis xbee !"
up: 'echo "{{ .greeting }}" > {{ .xbee.app }}/hello.txt'
down: "rm -f {{ .xbee.app }}/hello.txt"
command:
hello: 'echo "{{ .greeting }}"'require: ubuntu:24.04déclare le système sous-jacent au pack.var.greetingfait partie du modèle de données du pack : contrairement àconst, ses feuilles pourront être surchargées — on s’en sert dans le tutoriel suivant.upetdown, réduits à une chaîne, sont chacun un raccourci vers une actionshell— le point de liaison entre un environnement et ce pack, pas encore utilisé à ce stade.command.helloexpose une commandexbee hello, invoquée viaxbee <cmdPack>— voir Commandes CLI.
{{ .greeting }} et {{ .xbee.app }} sont interpolés au moment de l’exécution, sans
préfixe var. : le manifeste interpole un modèle déjà fusionné. .xbee.app vient de la
clé réservée xbee, posée par défaut par xbee lui-même (/xbee/app, sans qu’il soit
besoin de la déclarer) — voir
Modèle de données.
Provisionner et tester isolément
Hors de tout environnement, xbee pack enchaîne
système → acquisition/build des builders → provision → deploy — voir
Packs :
xbee packPour hello, seules les deux premières étapes produisent réellement quelque chose :
le système prépare l’image ubuntu:24.04, et provision installe les dépendances du
pack — ici aucune. Le pack ne déclare ni builder ni section deploy.
Depuis le répertoire du pack, xbee enter construit (si besoin) puis démarre un
container à partir de ce pack, et y ouvre un shell — par défaut dans /xbee/app
(.xbee.app, voir plus haut) :
xbee enterup n’est pas exécuté par xbee pack ni par xbee enter : c’est une commande
d’environnement (xbee up) qui l’invoque, hôte par hôte — voir le
tutoriel suivant. hello.txt n’existe
donc pas encore dans ce shell ; sortez-en (exit) et invoquez plutôt la commande
exposée par le pack, indépendante du cycle de vie :
xbee hello
# Bonjour depuis xbee !Si vous modifiez le xbee-pack.yaml (par exemple la valeur de greeting) après ce premier
xbee pack, un nouvel appel réutilise les images et artefacts valides. Utilisez
--force-provision, --force-system ou --rebuild-builders pour forcer la couche
concernée, ou --clean/-c pour repartir d’une résolution neuve du lock — voir
Identité & résolution.
Prochaine étape : utiliser ce pack comme dépendance d’un hôte, dans un
environnement minimal, pour voir up
et down s’exécuter réellement.