Beryl::Config
Namespace de la configuration beryl dans ~/.config/beryl/ (ADR-014).
Arborescence :
~/.config/beryl/ _default.yml # socle technique commun à toutes sociétés .env.yml # credentials : société → fournisseur → vars <société>/ _account.yml # optionnel : métadonnées société <domaine>.yml # identité du domaine <domaine>/ # hosts directs + groupes <host>.yml <groupe>.yml # propriétés du groupe <groupe>/ <host>.yml
Un fichier host dans un groupe garde le même FQDN <host>.<domaine>
que s'il était à la racine du domaine : le groupe n'apparaît PAS
dans le FQDN. Le groupe ne sert qu'à factoriser les propriétés
métier (packages, sudoers…).
Hiérarchie d'héritage (du plus général au plus spécifique) :
_default.yml— socle commun à tous les domaines<société>/<domaine>.yml— identité du domaine<société>/<domaine>/<groupe>.yml— spécialisation d'usage (optionnel)<société>/<domaine>/<host>.ymlOU<société>/<domaine>/<groupe>/<host>.yml
Règles de merge (voir Beryl::Config::Merger) :
- scalaires : override
- freebsd.packages / sudoers : append + dédup
- freebsd.users : merge par
name - freebsd.users[].ssh_keys : remplacement (liste exacte au niveau le plus spécifique) + injection de la clé domaine obligatoire
- freebsd.disks : override
Constants
Dossier par défaut où vivent les clés publiques SSH côté opérateur. Toutes les clés SSH référencées par nom dans les YAML sont cherchées ici. Philippe, 22 avril 2026 : « Toutes les clés sont systématiquement dans ~/.ssh pourquoi coder un chemin ? ».
Class methods
Résout une entrée ssh_keys: vers le contenu effectif à poser
dans authorized_keys côté serveur.
Deux formes reconnues automatiquement :
-
Clé inline (commence par
ssh-) :- ssh-ed25519 AAAAC3... philippe@aloli.fr
Utilisée telle quelle, après
.strip.
- ssh-ed25519 AAAAC3... philippe@aloli.fr
Utilisée telle quelle, après
-
Nom de fichier (tout le reste, typiquement
nom.pub) :- philippe.aloli.fr.pub
Cherché dans
ssh_dir(défaut~/.ssh/). On lit la première ligne non vide et non commentée du fichier.
- philippe.aloli.fr.pub
Cherché dans
Permet à l'opérateur d'éviter la duplication (une clé vit à un
seul endroit : ~/.ssh/nom.pub) et facilite la rotation : on
ajoute une 2ème entrée ssh_keys: temporairement pour déployer
la nouvelle clé, puis on retire l'ancienne ligne.
Nested types
- Beryl::Config::Account
- Beryl::Config::BootPoolEncryptionUnsupported
- Beryl::Config::Domain
- Beryl::Config::EncryptionConfig
- Beryl::Config::EnvFile
- Beryl::Config::Group
- Beryl::Config::HostNode
- Beryl::Config::InvalidEncryptionConfig
- Beryl::Config::Loader
- Beryl::Config::Merger
- Beryl::Config::Pool
- Beryl::Config::ResolvedHost
- Beryl::Config::Root
- Beryl::Config::SshKeyEmpty
- Beryl::Config::SshKeyNotFound
- Beryl::Config::Zpool