Concepts
Actions
Les actions typées exécutées dans un container ou une VM pendant le provisioning.
Les actions (xbee/actions/) sont des unités typées et exécutables, invoquées à
l’intérieur d’un container ou d’une VM pendant le provisioning. Une directive up,
down ou configure réduite à une chaîne est un raccourci vers une action shell.
| Clé YAML | Rôle |
|---|---|
shell | Exécuter des commandes shell |
copy | Copier des fichiers ou des répertoires |
env | Exporter des variables d’environnement |
user | Gérer les utilisateurs du système |
url | Télécharger et mettre en cache une ressource HTTP, HTTPS ou FTP |
github | Télécharger les assets d’une release GitHub |
permission | Positionner des permissions sur des fichiers |
folder | Créer, supprimer ou valider des répertoires |
systempath | Ajouter un répertoire au PATH |
pkg | Installer ou retirer des paquets via le gestionnaire du système |
repo | Déclarer un dépôt de paquets |
gpg | Installer et contrôler une clé GPG |
export | Exporter un chemin sous forme d’artefact |
command | Exécuter une commande structurée |
Action Url
url:
from:
topath:
todir:
unpack:from définit l’URL elle-même. La ressource n’est téléchargée que si elle n’est
pas déjà présente dans le cache (~/.xbee/cache-artefacts par défaut) :
- Si la ressource est dans le cache, pas de téléchargement ; sinon elle est téléchargée vers le cache.
topathettodirsont mutuellement exclusifs.todira une valeur par défaut si ni l’un ni l’autre n’est renseigné.unpackvauttruepar défaut avectodir, etfalsepar défaut avectopath.
url: http://toto.com/toto.tar.gzrécupère toto.tar.gz et le dépaquette dans /opt. Si todir est renseigné,
l’artefact y est dépaqueté (ou copié tel quel) ; si topath est renseigné, l’artefact
est copié sous ce nom, et dépaqueté dans le répertoire parent si unpack est vrai.
Action Env
La section env d’un pack expose des variables d’environnement dans le descripteur du
container (pour une VM, elles doivent être accessibles à tout utilisateur). L’action
env d’une directive provision, elle, peut être attribuée à un utilisateur
spécifique et n’apparaît pas dans le descripteur du container.
Action Systempath
systempath: /opt/apache-maven-3.9.9/binajoute un ou plusieurs répertoires au PATH du container ou de la VM — réduit à une
chaîne pour un seul répertoire, à une liste (path: [...]) pour plusieurs. owner
restreint l’effet à un utilisateur donné ; sans lui, tous les utilisateurs en
bénéficient.
Action Pkg
pkg:
name: openjdk-21-jdkinstalle un ou plusieurs paquets (name, chaîne ou liste) via le gestionnaire du
système sous-jacent — apt ou yum selon la distribution, sans que le pack ait à s’en
soucier. update: true rafraîchit l’index des paquets avant l’installation ; remove: true les retire au lieu de les installer ; builddep: true installe leurs dépendances
de build plutôt que les paquets eux-mêmes.
Secrets pour les actions réseau
Les identifiants nécessaires aux actions url ou git peuvent être fournis via un
fichier credentials.yml, placé dans le répertoire .xbee d’une abstraction ou dans
celui de l’utilisateur :
- name:
user:
password:name correspond à une URL complète ou à un host.
NamedPayload
Au niveau d’un pack, les sections up, down, configure et command produisent
chacune un NamedPayload — NP.Name valant up/down/configure/command, et
NP.Payload un Shell ou une Command. Au niveau d’un environnement, un
NamedPayload peut référencer soit un shell direct, soit l’une de ces sections d’un
pack.