Beryl::Apply::SshdConfigSet
Inherits Beryl::Apply::Primitive < Reference < Object
Primitive sshd-config-set : pose une directive dans
/etc/ssh/sshd_config.d/beryl.conf (fichier géré par beryl). Comme
FreeBSD ne met PAS d'Include sshd_config.d/*.conf par défaut, la
primitive l'ajoute EN TÊTE du sshd_config si absent — sinon le
drop-in serait écrit mais jamais lu. En tête car sshd retient la
PREMIÈRE valeur d'une directive → les drop-ins priment.
Idempotence : la directive est déjà présente avec la bonne valeur →
skip. Sinon le fichier est réécrit, validé (sshd -t) et sshd est
rechargé (service sshd reload).
Valeur RÉELLE : un drop-in lu AVANT beryl.conf (ordre alphabétique,
ex. 10-beryl-bootstrap.conf du bootstrap) qui fixe la même directive
l'emporte. S'il est à beryl (nom contenant « beryl »), la directive y est
retirée ; sinon, échec qui nomme le fichier. Sans masque, la valeur
effective (sshd -T) doit commencer par la valeur voulue (tolère
ListenAddress 1.2.3.4 → 1.2.3.4:22) — sinon échec : autre source
(sshd_config, bloc Match).
- sshd-config-set:
key: PermitRootLogin
value: "no"
Cas où la valeur dépend d'un état runtime (ex. IP de l'interface
tailscale0 inconnue à l'écriture de la recette) : utiliser
value_from_command à la place. La commande est exécutée côté
serveur cible, son stdout strippé devient la valeur. Échec
(exit ≠ 0 ou stdout vide) → la primitive fail.
- sshd-config-set:
key: ListenAddress
value_from_command: "tailscale ip -4"
Constants
Linux : « 00- » pour passer AVANT les drop-ins du système (SUSE : 40-suse-crypto-policies.conf, 50-cloud-init.conf), lus dans l'ordre alphabétique — sshd retient la première valeur.
Class methods
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 », …).
Systèmes sur lesquels la primitive sait agir. FreeBSD seul par défaut :
une primitive portable (ou portée) le déclare en redéfinissant cette
méthode. L'Executor refuse une primitive hors de sa liste.