module

Beryl::Apply

Constants

DECODE_FAILED = 125

Code de sortie de sh_line quand le script n'a pas pu être décodé.

FREEBSD = "freebsd"

Systèmes cibles. FreeBSD est la cible de beryl ; Linux (systemd, SUSE pour pkg-install) est pris en charge pour une poignée de primitives seulement (une VM confiée par un client, par exemple), chacune le déclarant dans Primitive#systems, chaque recette dans systems:.

LINUX = "linux"

Class methods

host_secret_name(name : String, hostname : String) : String

Variable du coffre PROPRE À UN SERVEUR : <HÔTE>__<NOM> (nom court en majuscules, tout caractère hors [A-Z0-9] → _). Serveur en tête : dans le coffre trié, tous les secrets d'un serveur se suivent. Ex. sur web1 : WEB1__APP_AGENT_TOKEN.

Source
legacy_host_secret_name(name : String, hostname : String) : String

Ancienne forme <NOM>__<HÔTE> (jusqu'à 0.6.140), encore lue en repli le temps de renommer les secrets existants du coffre.

Source
multi_line?(text : String) : Bool
Source
secret(name : String, context : Context, per_host : Bool = false) : String | Nil

Valeur d'un secret du coffre (injecté dans ENV) pour ce serveur : la variante propre au serveur d'abord (<HÔTE>__<NOM>, puis l'ancienne forme <NOM>__<HÔTE>), puis, sauf per_host, la variable commune à la société. nil si absente ou vide. Un secret qui doit être distinct par serveur (jeton, clé) demande per_host: true : la valeur commune est alors refusée, plutôt que de réutiliser celle d'un autre. Une variante du serveur DÉCLARÉE VIDE (SERVEUR__NOM = '') écarte la valeur commune : « pas de valeur pour ce serveur » (ex. relais de mail sans mot de passe sur un serveur, avec sur les autres).

Source
sh_line(script : String) : String

Ligne sh -c … qui exécute script (sh POSIX) quel que soit le shell de connexion distant. Un script d'UNE ligne est simplement cité ; un script multi-ligne voyage en base64 : csh (shell de connexion d'admin et des anciens root FreeBSD) refuse un retour à la ligne entre apostrophes (« Unmatched ' », « Illegal variable name », « esac: Command not found », qwerty, 14 oct. 2026). Le script décodé est passé en ARGUMENT de sh -c, pas par un pipe : une commande du script qui lit stdin avalerait la suite. Décodage impossible (ni b64decode, base FreeBSD, ni base64) → code DECODE_FAILED + message, jamais un script vide joué en silence.

Source

Nested types