Beryl::Apply::Command
Inherits Beryl::Apply::Primitive < Reference < Object
Primitive command : lance une commande UNE FOIS, gardée par unless
(commande de contrôle : code 0 → déjà fait, skip). Dernier recours, pour
une action d'appli qu'aucune primitive ne couvre (amorçage d'un premier
compte…) : sans garde, elle serait rejouée à chaque apply, d'où unless
OBLIGATOIRE.
- command:
run: "monappli-manage bootstrap --email={{ bootstrap_email }}"
unless: "psql -d monappli -tAc \"…\" | grep -q 1"
user: monappli # facultatif (défaut root)
env_file: /usr/local/etc/monappli/monappli.env # facultatif
if_set: "{{ bootstrap_email }}" # vide → étape sautée
show_output: true # sortie dans le compte rendu
run et unless passent par sh -c ; env_file (lignes VAR=valeur) est
chargé avant, avec set -a. Ils peuvent tenir sur plusieurs lignes (bloc
YAML |) : le script voyage en base64, à l'abri du shell de connexion
(csh). En dry-run, seule la garde est jouée : elle doit donc être en
LECTURE SEULE.
Une garde qui ne s'exécute pas (commande introuvable, erreur de syntaxe du shell) met l'étape en FAILED, en dry-run comme en --apply : ce n'est pas un « pas encore fait ». Une garde qui répond « non » en écrivant sur stderr reste un « would apply », avec ce stderr dans le compte rendu.
Constants
Instance methods
params est le hash brut du step YAML (ex: {"packages" => [...]}),
déjà interpolé par l'Executor. context porte les infos
dérivées du host (cf. Context).
Nom kebab-case utilisé comme clé de step dans les recettes (« pkg-install », « service-enable », …).